go語言使用go-sciter建立案頭應用(二) ui元素尋找,增加,刪除,修改

來源:互聯網
上載者:User

標籤:src   案頭   一個   demo   刪除   highlight   tun   ref   介面   

我們可以通過go-sciter給我們提供的方法,方便的對html,css編寫的UI介面進行增刪改查。

demo3.go代碼如下:

package main;import ("github.com/sciter-sdk/go-sciter""github.com/sciter-sdk/go-sciter/window""log""fmt")//一些基礎操作func base(root *sciter.Element) {//通過ID選擇元素ul, _ := root.SelectById("list");//擷取元素的文本text, _ := ul.Text();fmt.Println("text:", text);//擷取元素的html//參數為真,則返回元素外部html//參數為假,則返回元素內部htmltext, _ = ul.Html(false);fmt.Println("html:", text);//擷取子項目個數n, _ := ul.ChildrenCount();fmt.Println(n);}//動態添加元素func addElement(root *sciter.Element) {//建立一個元素add, _ := sciter.CreateElement("li", "444");//設定元素的屬性add.SetAttr("data", "add");//通過標籤和ID來選擇元素,類似jqueryul, _ := root.SelectFirst("ul#list");//插入元素,下標從0開始err := ul.Insert(add, 3);if err != nil {log.Fatal("添加元素失敗");}add2, _ := sciter.CreateElement("li", "");err2 := ul.Insert(add2, 4);//注意這裡,元素先insert後再去設定html才有效//設定添加元素的htmladd2.SetHtml("<a href=‘http://www.baidu.com‘>555</a>", sciter.SIH_REPLACE_CONTENT);if err2 != nil {log.Fatal("添加元素失敗");}}//刪除元素func delElement(root *sciter.Element) {ul, _ := root.SelectFirst("ul#list");//擷取第一個子項目,下標從0開始li, _ := ul.NthChild(0);//刪除元素li.Delete();//我們也可以用css選取器直接選擇要刪除的元素//注意css裡面的nth-child(n)下標從1開始li2, _ := root.SelectFirst("ul#list>li:nth-child(2)");//刪除元素li2.Delete();}//修改元素func updElement(root *sciter.Element) {li, _ := root.SelectFirst("ul#list>li:nth-child(1)");//給元素設定樣式li.SetStyle("color", "#f00");//給元素設定html//參數一:html內容//參數二:html放在哪裡,SIH_REPLACE_CONTENT表示替換舊內容li.SetHtml("<a href=‘http://www.baidu.com‘>baidu.com</a>", sciter.SIH_REPLACE_CONTENT);//在最後面追加內容li.SetHtml("哈哈", sciter.SIH_APPEND_AFTER_LAST);//設定元素屬性li.SetAttr("test", "test");li2, _ := root.SelectFirst("ul#list>li:nth-child(2)");//設定文本li2.SetText("我改我改");}//尋找元素func selElement(root *sciter.Element) {//通過css選取器選擇元素,會返回*Element的sliceroot.Select("ul#list>li");//通過選取器返回第一個元素//也是調用的Select,不過只返回第一個元素root.SelectFirst("ul#list>li");//通過元素IDroot.SelectById("list");//選擇父元素//參數二:表示深度root.SelectParent("li", 1);//返回選取器匹配唯一子項目,如果沒有或匹配多個,會引發Panicroot.SelectUnique("ul#list>li:nth-child(1)");}func main() {//建立一個新視窗//這裡參數一和參數二都使用的預設值//DefaultWindowCreateFlag = SW_TITLEBAR | SW_RESIZEABLE | SW_CONTROLS | SW_MAIN | SW_ENABLE_DEBUG//DefaultRect = &Rect{0, 0, 300, 400}w, err := window.New(sciter.DefaultWindowCreateFlag, sciter.DefaultRect);if err != nil {log.Fatal(err);}//設定標題w.SetTitle("文本html");html := `<html><body><ul id="list" name="list"><li>111</li><li>222</li><li>333</li></ul></body></html>`;//載入html,從一個字串變數中w.LoadHtml(html, "");//視窗擷取根項目,這裡應該是htmlroot, _ := w.GetRootElement();//這裡把一些操作單獨寫成函數方便查看base(root);addElement(root);delElement(root);updElement(root);selElement(root);//顯示視窗w.Show();//運行視窗,進入訊息迴圈w.Run();}

go語言使用go-sciter建立案頭應用(二) ui元素尋找,增加,刪除,修改

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.