<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # PyGTK 中的菜單 > 原文: [http://zetcode.com/gui/pygtk/menus/](http://zetcode.com/gui/pygtk/menus/) 在 PyGTK 編程教程的這一部分中,我們將使用菜單。 菜單欄是 GUI 應用中最常見的部分之一。 它是位于各個菜單中的一組命令。 在控制臺應用中,您必須記住所有這些神秘命令,在這里,我們將大多數命令分組為邏輯部分。 這些公認的標準可進一步減少學習新應用所花費的時間。 ## 簡單菜單 在第一個示例中,我們將創建一個帶有一個文件菜單的菜單欄。 該菜單將只有一個菜單項。 通過選擇項目,應用退出。 `simplemenu.py` ```py #!/usr/bin/python # ZetCode PyGTK tutorial # # This example shows a simple menu # # author: jan bodnar # website: zetcode.com # last edited: February 2009 import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Simple menu") self.set_size_request(250, 200) self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(6400, 6400, 6440)) self.set_position(gtk.WIN_POS_CENTER) mb = gtk.MenuBar() filemenu = gtk.Menu() filem = gtk.MenuItem("File") filem.set_submenu(filemenu) exit = gtk.MenuItem("Exit") exit.connect("activate", gtk.main_quit) filemenu.append(exit) mb.append(filem) vbox = gtk.VBox(False, 2) vbox.pack_start(mb, False, False, 0) self.add(vbox) self.connect("destroy", gtk.main_quit) self.show_all() PyApp() gtk.main() ``` 這是一個最小的菜單欄功能示例。 ```py mb = gtk.MenuBar() ``` `MenuBar`小部件已創建。 ```py filemenu = gtk.Menu() filem = gtk.MenuItem("File") filem.set_submenu(filemenu) ``` 創建頂層`MenuItem`。 ```py exit = gtk.MenuItem("Exit") exit.connect("activate", gtk.main_quit) filemenu.append(exit) ``` 將創建出口`MenuItem`,并將其附加到文件`MenuItem`中。 ```py mb.append(filem) ``` 頂級`MenuItem`被附加到`MenuBar`小部件。 ```py vbox = gtk.VBox(False, 2) vbox.pack_start(mb, False, False, 0) ``` 與其他工具包不同,我們必須自己照顧菜單欄的布局管理。 我們將菜單欄放入垂直框。 ![Simple menu](https://img.kancloud.cn/a0/9b/a09bf6684dc73262662852dd29f9aec1_258x228.jpg) 圖:簡單菜單 ## 圖像菜單 在下一個示例中,我們將進一步探索菜單。 我們將圖像和加速器添加到我們的菜單項中。 加速器是用于激活菜單項的鍵盤快捷鍵。 `imagemenu.py` ```py #!/usr/bin/python # ZetCode PyGTK tutorial # # This example shows a menu with # images, accelerators and a separator # # author: jan bodnar # website: zetcode.com # last edited: February 2009 import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Image menu") self.set_size_request(250, 200) self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(6400, 6400, 6440)) self.set_position(gtk.WIN_POS_CENTER) mb = gtk.MenuBar() filemenu = gtk.Menu() filem = gtk.MenuItem("_File") filem.set_submenu(filemenu) agr = gtk.AccelGroup() self.add_accel_group(agr) newi = gtk.ImageMenuItem(gtk.STOCK_NEW, agr) key, mod = gtk.accelerator_parse("<Control>N") newi.add_accelerator("activate", agr, key, mod, gtk.ACCEL_VISIBLE) filemenu.append(newi) openm = gtk.ImageMenuItem(gtk.STOCK_OPEN, agr) key, mod = gtk.accelerator_parse("<Control>O") openm.add_accelerator("activate", agr, key, mod, gtk.ACCEL_VISIBLE) filemenu.append(openm) sep = gtk.SeparatorMenuItem() filemenu.append(sep) exit = gtk.ImageMenuItem(gtk.STOCK_QUIT, agr) key, mod = gtk.accelerator_parse("<Control>Q") exit.add_accelerator("activate", agr, key, mod, gtk.ACCEL_VISIBLE) exit.connect("activate", gtk.main_quit) filemenu.append(exit) mb.append(filem) vbox = gtk.VBox(False, 2) vbox.pack_start(mb, False, False, 0) self.add(vbox) self.connect("destroy", gtk.main_quit) self.show_all() PyApp() gtk.main() ``` 我們的示例顯示了具有三個子菜單項的頂級菜單項。 每個菜單項都有一個圖像和一個加速器。 退出菜單項的加速器處于活動狀態。 ```py agr = gtk.AccelGroup() self.add_accel_group(agr) ``` 要使用加速器,我們創建一個全局`AccelGroup`對象。 稍后將使用。 ```py newi = gtk.ImageMenuItem(gtk.STOCK_NEW, agr) ``` `ImageMenuItem`已創建。 圖片來自圖片庫。 ```py key, mod = gtk.accelerator_parse("<Control>N") ``` `gtk.accelerator_parse()`函數解析指定的加速器字符串,并返回一個 2 元組,其中包含與加速器相對應的鍵值和修飾符掩碼。 ```py newi.add_accelerator("activate", agr, key, mod, gtk.ACCEL_VISIBLE) ``` 這將為退出菜單項創建 `Ctrl + Q` 加速器。 ```py sep = gtk.SeparatorMenuItem() filemenu.append(sep) ``` 這些行創建一個分隔符。 它用于將菜單項分組為邏輯組。 ![Image menu](https://img.kancloud.cn/78/9e/789ecef7409d5ee63d9331b9f1d5de68_258x228.jpg) 圖:圖像 menu ## `CheckMenuItem` `CheckMenuItem`是帶有復選框的菜單項。 它可以用于布爾屬性。 `checkmenuitem.py` ```py #!/usr/bin/python # ZetCode PyGTK tutorial # # This example shows how to # use a CheckMenuItem # # author: jan bodnar # website: zetcode.com # last edited: February 2009 import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Check menu item") self.set_size_request(250, 200) self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(6400, 6400, 6440)) self.set_position(gtk.WIN_POS_CENTER) mb = gtk.MenuBar() filemenu = gtk.Menu() filem = gtk.MenuItem("File") filem.set_submenu(filemenu) viewmenu = gtk.Menu() view = gtk.MenuItem("View") view.set_submenu(viewmenu) stat = gtk.CheckMenuItem("View Statusbar") stat.set_active(True) stat.connect("activate", self.on_status_view) viewmenu.append(stat) exit = gtk.MenuItem("Exit") exit.connect("activate", gtk.main_quit) filemenu.append(exit) mb.append(filem) mb.append(view) self.statusbar = gtk.Statusbar() self.statusbar.push(1, "Ready") vbox = gtk.VBox(False, 2) vbox.pack_start(mb, False, False, 0) vbox.pack_start(gtk.Label(), True, False, 0) vbox.pack_start(self.statusbar, False, False, 0) self.add(vbox) self.connect("destroy", gtk.main_quit) self.show_all() def on_status_view(self, widget): if widget.active: self.statusbar.show() else: self.statusbar.hide() PyApp() gtk.main() ``` 在我們的代碼示例中,我們顯示一個檢查菜單項。 如果該復選框已激活,則顯示狀態欄小部件。 如果不是,狀態欄將被隱藏。 ```py stat = gtk.CheckMenuItem("View Statusbar") ``` `CheckMenuItem`小部件已創建。 ```py stat.set_active(True) ``` `set_active()`方法選中/取消選中檢查菜單項。 ```py if widget.active: self.statusbar.show() else: self.statusbar.hide() ``` 根據`CheckMenuItem`的活動屬性,我們顯示或隱藏狀態欄小部件。 ![CheckMenuItem](https://img.kancloud.cn/3a/fa/3afac808bac436bac5ad71ed59b04aca_258x228.jpg) 圖:`CheckMenuItem` ## 子菜單 我們的最后一個示例演示了如何在 PyGTK 中創建子菜單。 `submenu.py` ```py #!/usr/bin/python # ZetCode PyGTK tutorial # # This example shows a submenu # # author: jan bodnar # website: zetcode.com # last edited: February 2009 import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Submenu") self.set_size_request(250, 200) self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(6400, 6400, 6440)) self.set_position(gtk.WIN_POS_CENTER) mb = gtk.MenuBar() filemenu = gtk.Menu() filem = gtk.MenuItem("File") filem.set_submenu(filemenu) mb.append(filem) imenu = gtk.Menu() importm = gtk.MenuItem("Import") importm.set_submenu(imenu) inews = gtk.MenuItem("Import news feed...") ibookmarks = gtk.MenuItem("Import bookmarks...") imail = gtk.MenuItem("Import mail...") imenu.append(inews) imenu.append(ibookmarks) imenu.append(imail) filemenu.append(importm) exit = gtk.MenuItem("Exit") exit.connect("activate", gtk.main_quit) filemenu.append(exit) vbox = gtk.VBox(False, 2) vbox.pack_start(mb, False, False, 0) self.add(vbox) self.connect("destroy", gtk.main_quit) self.show_all() PyApp() gtk.main() ``` 子菜單創建。 ```py imenu = gtk.Menu() ``` 子菜單是`Menu`。 ```py importm = gtk.MenuItem("Import") importm.set_submenu(imenu) ``` 它是菜單項的子菜單,它會登錄到頂級文件菜單。 ```py inews = gtk.MenuItem("Import news feed...") ibookmarks = gtk.MenuItem("Import bookmarks...") imail = gtk.MenuItem("Import mail...") imenu.append(inews) imenu.append(ibookmarks) imenu.append(imail) ``` 子菜單有其自己的菜單項。 ![Submenu](https://img.kancloud.cn/26/95/269565739b38b2d7db3a20761315047e_258x228.jpg) 圖:子菜單 在 PyGTK 編程庫的這一章中,我們展示了如何使用菜單。
                  <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>

                              哎呀哎呀视频在线观看