<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # GTK# 中的工具欄 > 原文: [http://zetcode.com/gui/gtksharp/toolbars/](http://zetcode.com/gui/gtksharp/toolbars/) 在 GTK# 編程教程的這一部分中,我們將使用工具欄。 菜單將我們可以在應用中使用的命令分組。 使用工具欄可以快速訪問最常用的命令。 工具欄是帶有按鈕的水平或垂直面板。 這些按鈕包含圖像或圖像和文本。 通過單擊工具欄按鈕,我們執行一個動作。 ## 簡單的工具欄 接下來,我們創建一個簡單的工具欄。 `toolbar.cs` ```cs using Gtk; using System; class SharpApp : Window { public SharpApp() : base("Toolbar") { SetDefaultSize(250, 200); SetPosition(WindowPosition.Center); DeleteEvent += delegate { Application.Quit(); }; Toolbar toolbar = new Toolbar(); toolbar.ToolbarStyle = ToolbarStyle.Icons; ToolButton newtb = new ToolButton(Stock.New); ToolButton opentb = new ToolButton(Stock.Open); ToolButton savetb = new ToolButton(Stock.Save); SeparatorToolItem sep = new SeparatorToolItem(); ToolButton quittb = new ToolButton(Stock.Quit); toolbar.Insert(newtb, 0); toolbar.Insert(opentb, 1); toolbar.Insert(savetb, 2); toolbar.Insert(sep, 3); toolbar.Insert(quittb, 4); quittb.Clicked += OnClicked; VBox vbox = new VBox(false, 2); vbox.PackStart(toolbar, false, false, 0); Add(vbox); ShowAll(); } void OnClicked(object sender, EventArgs args) { Application.Quit(); } public static void Main() { Application.Init(); new SharpApp(); Application.Run(); } } ``` 該示例顯示了一個工具欄和四個工具按鈕。 ```cs Toolbar toolbar = new Toolbar(); ``` `Toolbar`小部件已創建。 ```cs toolbar.ToolbarStyle = ToolbarStyle.Icons; ``` 在工具欄上,我們僅顯示圖標。 沒有文字。 ```cs ToolButton newtb = new ToolButton(Stock.New); ``` 創建帶有庫存圖像的`ToolButton`。 ```cs SeparatorToolItem sep = new SeparatorToolItem(); ``` 這是一個分隔符。 它可用于將工具欄按鈕分組為邏輯組。 ```cs toolbar.Insert(newtb, 0); toolbar.Insert(opentb, 1); ... ``` 工具欄按鈕插入到工具欄小部件中。 ![Toolbar](https://img.kancloud.cn/03/00/0300c238fbee9d09c3d0a42d62fb492d_258x228.jpg) 圖:工具欄 ## 工具欄 在第二個示例中,我們顯示了兩個工具欄。 許多應用具有多個工具欄。 我們展示了如何在 GTK# 中做到這一點。 `toolbars.cs` ```cs using Gtk; using System; class SharpApp : Window { public SharpApp() : base("Toolbars") { SetDefaultSize(250, 200); SetPosition(WindowPosition.Center); DeleteEvent += delegate { Application.Quit(); }; Toolbar upper = new Toolbar(); upper.ToolbarStyle = ToolbarStyle.Icons; ToolButton newtb = new ToolButton(Stock.New); ToolButton opentb = new ToolButton(Stock.Open); ToolButton savetb = new ToolButton(Stock.Save); upper.Insert(newtb, 0); upper.Insert(opentb, 1); upper.Insert(savetb, 2); Toolbar lower = new Toolbar(); lower.ToolbarStyle = ToolbarStyle.Icons; ToolButton quittb = new ToolButton(Stock.Quit); quittb.Clicked += OnClicked; lower.Insert(quittb, 0); VBox vbox = new VBox(false, 2); vbox.PackStart(upper, false, false, 0); vbox.PackStart(lower, false, false, 0); Add(vbox); ShowAll(); } void OnClicked(object sender, EventArgs args) { Application.Quit(); } public static void Main() { Application.Init(); new SharpApp(); Application.Run(); } } ``` 我們的應用顯示了兩個工具欄。 ```cs Toolbar upper = new Toolbar(); ... Toolbar lower = new Toolbar(); ``` 我們創建兩個`Toolbar`小部件。 ```cs upper.Insert(newtb, 0); ... lower.Insert(quittb, 0); ``` 它們每個都有自己的工具按鈕。 ```cs VBox vbox = new VBox(false, 2); vbox.PackStart(upper, false, false, 0); vbox.PackStart(lower, false, false, 0) ``` 工具欄一個接一個地包裝在垂直盒中。 ![Toolbars](https://img.kancloud.cn/88/43/88435fac0b601a70e77c4287084d2f97_258x228.jpg) 圖:工具欄 s ## 撤銷重做 以下示例演示了如何停用工具欄上的工具欄按鈕。 這是 GUI 編程中的常見做法。 例如,保存按鈕。 如果我們將文檔的所有更改都保存到磁盤上,則在大多數文本編輯器中,“保存”按鈕將被禁用。 這樣,應用會向用戶指示所有更改都已保存。 `undoredo.cs` ```cs using Gtk; using System; class SharpApp : Window { private int count = 2; private ToolButton undo; private ToolButton redo; public SharpApp() : base("Undo redo") { SetDefaultSize(250, 200); SetPosition(WindowPosition.Center); DeleteEvent += delegate { Application.Quit(); }; Toolbar toolbar = new Toolbar(); toolbar.ToolbarStyle = ToolbarStyle.Icons; undo = new ToolButton(Stock.Undo); redo = new ToolButton(Stock.Redo); SeparatorToolItem sep = new SeparatorToolItem(); ToolButton quit = new ToolButton(Stock.Quit); toolbar.Insert(undo, 0); toolbar.Insert(redo, 1); toolbar.Insert(sep, 2); toolbar.Insert(quit, 3); undo.Clicked += OnUndo; redo.Clicked += OnRedo; quit.Clicked += OnClicked; VBox vbox = new VBox(false, 2); vbox.PackStart(toolbar, false, false, 0); vbox.PackStart(new Label(), false, false, 0); Add(vbox); ShowAll(); } void OnUndo(object sender, EventArgs args) { count -= 1; if (count <= 0) { undo.Sensitive = false; redo.Sensitive = true; } } void OnRedo(object sender, EventArgs args) { count += 1; if (count >= 5) { redo.Sensitive = false; undo.Sensitive = true; } } void OnClicked(object sender, EventArgs args) { Application.Quit(); } public static void Main() { Application.Init(); new SharpApp(); Application.Run(); } } ``` 我們的示例從 GTK# 庫存資源創建撤消和重做按鈕。 單擊幾下后,每個按鈕均被禁用。 按鈕顯示為灰色。 ```cs private int count = 2; ``` 計數變量決定哪個按鈕被激活和禁用。 ```cs undo = new ToolButton(Stock.Undo); redo = new ToolButton(Stock.Redo); ``` 我們有兩個工具按鈕。 撤消和重做工具按鈕。 圖片來自庫存資源。 ```cs undo.Clicked += OnUndo; redo.Clicked += OnRedo; ``` 我們為兩個工具按鈕都插入了`Clicked`事件的方法。 ```cs if (count <= 0) { undo.Sensitive = false; redo.Sensitive = true; } ``` 要激活小部件,我們將其`Sensitive`屬性設置為 true。 要使其無效,我們將其設置為`false`。 ![Undo redo](https://img.kancloud.cn/53/66/536694337f1199a7d7bf457d1d2d9898_258x228.jpg) 圖:撤銷和重做 在 GTK# 編程庫的這一章中,我們提到了工具欄。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看