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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Qyoto 中的菜單和工具欄 > 原文: [http://zetcode.com/gui/vbqyoto/menustoolbars/](http://zetcode.com/gui/vbqyoto/menustoolbars/) 在 Visual Basic Qyoto 編程教程的這一部分中,我們將使用菜單和工具欄。 菜單欄是 GUI 應用中最可見的部分之一。 它是位于各個菜單中的一組命令。 在控制臺應用中,您必須記住所有這些神秘命令,在這里,我們將大多數命令分組為邏輯部分。 有公認的標準可以進一步減少學習新應用的時間。 菜單將我們可以在應用中使用的命令分組。 使用工具欄可以快速訪問最常用的命令。 ## 簡單菜單 第一個示例將顯示一個簡單的菜單。 ```vb ' ZetCode Mono Visual Basic Qt tutorial ' ' This program shows a simple ' menu. It has one action, which ' will terminate the program, when ' selected. ' ' author jan bodnar ' last modified May 2009 ' website www.zetcode.com Imports Qyoto Public Class VBQApp Inherits QMainWindow Public Sub New() Me.SetWindowTitle("Simple menu") Me.InitUI() Me.Resize(250, 200) Me.Move(300, 300) Me.Show() End Sub Private Sub InitUI() Dim quit As New QAction("&Quit", Me) Dim file As QMenu = Me.MenuBar().AddMenu("&File") file.AddAction(quit) Connect(quit, SIGNAL("triggered()"), qApp, SLOT("quit()")) End Sub Public Shared Sub Main(ByVal args() As String) Dim qapp As New QApplication(args) Dim app as New VBQApp QApplication.Exec() End Sub End Class ``` 我們有一個菜單欄,一個菜單和一個動作。 為了使用菜單,我們必須繼承`QMainWindow`小部件。 ```vb Dim quit As New QAction("&Quit", Me) ``` 此代碼行創建一個`QAction`。 每個`QMenu`具有一個或多個動作對象。 注意 AND 字符(`&`)。 它為以下項目創建快捷方式: `Alt + Q` 。 它還強調了`Q`字符。 下拉菜單中的文件時,該快捷方式處于活動狀態。 ```vb Dim file As QMenu = Me.MenuBar().AddMenu("&File") file.AddAction(quit) ``` 我們創建一個`QMenu`對象。 &字符創建快捷方式: `Alt + F` 。 連續的快捷鍵 `Alt + F` , `Alt + Q` 退出了應用。 ```vb Connect(quit, SIGNAL("triggered()"), qApp, SLOT("quit()")) ``` 當我們從菜單中選擇此選項時,應用退出。 ![Simple menu](https://img.kancloud.cn/a5/4f/a54fd1a399d56001b5e7ad8fcc392025_256x225.jpg) 圖:簡單菜單 ## 創建一個子菜單 子菜單是插入另一個菜單對象的菜單。 下一個示例對此進行了演示。 ```vb ' ZetCode Mono Visual Basic Qt tutorial ' ' This program creates ' a submenu ' ' author jan bodnar ' last modified May 2009 ' website www.zetcode.com Imports Qyoto Public Class VBQApp Inherits QMainWindow Public Sub New() Me.SetWindowTitle("Submenu") Me.InitUI() Me.Resize(280, 200) Me.Move(300, 300) Me.Show() End Sub Private Sub InitUI() Dim quit As New QAction("&Quit", Me) Dim file As QMenu = MenuBar().AddMenu("&File") Dim impm As New QMenu("Import") Dim seeds As New QAction("Import news feed...", Me) Dim marks As New QAction("Import bookmarks...", Me) Dim mail As New QAction("Import mail...", Me) impm.AddAction(seeds) impm.AddAction(marks) impm.AddAction(mail) file.AddMenu(impm) file.AddAction(quit) Connect(quit, SIGNAL("triggered()"), qApp, SLOT("quit()")) End Sub Public Shared Sub Main(ByVal args() As String) Dim qapp As New QApplication(args) Dim app As New VBQApp QApplication.Exec() End Sub End Class ``` 在示例中,文件菜單的子菜單中有三個選項。 ```vb Dim file As QMenu = MenuBar().AddMenu("&File") Dim impm As New QMenu("Import") ``` 我們有兩個`QMenu`對象。 文件菜單和導入菜單。 ```vb Dim seeds As New QAction("Import news feed...", Me) Dim marks As New QAction("Import bookmarks...", Me) Dim mail As New QAction("Import mail...", Me) ``` 我們創建三個動作對象。 ```vb impm.AddAction(seeds) impm.AddAction(marks) impm.AddAction(mail) ``` 我們將動作對象添加到導入菜單中。 ```vb file.AddMenu(impm) ``` 最后,我們將導入菜單添加到文件菜單中。 ![Submenu](https://img.kancloud.cn/69/a0/69a0f2723c0c0c0135ec7627c52bc29d_315x241.jpg) 圖:子菜單 ## 圖像,菜單,分隔符 在以下示例中,我們將進一步增強以前的應用。 我們將在菜單中添加圖標,使用快捷方式和分隔符。 ```vb ' ZetCode Mono Visual Basic Qt tutorial ' ' This program shows image ' menu items, a shorcut and a separator ' ' author jan bodnar ' last modified May 2009 ' website www.zetcode.com Imports Qyoto Public Class VBQApp Inherits QMainWindow Public Sub New() Me.SetWindowTitle("Image menu") Me.InitUI() Me.Resize(280, 200) Me.Move(300, 300) Me.Show() End Sub Private Sub InitUI() Dim newpix As New QIcon("new.png") Dim openpix As New QIcon("open.png") Dim quitpix As New QIcon("quit.png") Dim newa As New QAction(newpix, "&New", Me) Dim open As New QAction(openpix, "&Open", Me) Dim quit As New QAction(quitpix, "&Quit", Me) quit.Shortcut = New QKeySequence("Ctrl+Q") Dim file As QMenu = MenuBar().AddMenu("&File") file.AddAction(newa) file.AddAction(open) file.AddSeparator() file.AddAction(quit) Connect(quit, SIGNAL("triggered()"), qApp, SLOT("quit()")) End Sub Public Shared Sub Main(ByVal args() As String) Dim qapp As New QApplication(args) Dim app As New VBQApp QApplication.Exec() End Sub End Class ``` 在我們的示例中,我們有一個包含三個動作的菜單。 如果我們選擇退出操作,則實際上只有退出操作才可以執行某些操作。 我們還創建了分隔符和 `Ctrl + Q` 快捷方式,它們將終止應用。 ```vb Dim newpix As New QIcon("new.png") Dim openpix As New QIcon("open.png") Dim quitpix As New QIcon("quit.png") ``` 這些是我們將在應用中使用的 PNG 圖像。 ```vb Dim newa As New QAction(newpix, "&New", Me) Dim open As New QAction(openpix, "&Open", Me) Dim quit As New QAction(quitpix, "&Quit", Me) ``` 在這里,我們創建三個動作對象。 第一個參數是`QIcon`。 ```vb quit.Shortcut = New QKeySequence("Ctrl+Q") ``` 這行創建一個快捷方式。 通過按下此快捷方式,我們將運行退出操作,這將終止應用。 ```vb file.AddSeparator() ``` 我們創建一個分隔符。 分隔符是一條水平線,它使我們能夠將菜單操作分組為一些邏輯部分。 ![Images, shortcut and a separator](https://img.kancloud.cn/71/1a/711a3ba20fcb4deebff97a3d24d07fc2_256x225.jpg) 圖:圖像 s, shortcut and a separator ## 工具欄 `QToolBar`類提供了一個可移動面板,其中包含一組控件,這些控件提供對應用操作的快速訪問。 ```vb ' ZetCode Mono Visual Basic Qt tutorial ' ' This program creates a ' toolbar ' ' author jan bodnar ' last modified May 2009 ' website www.zetcode.com Imports Qyoto Public Class VBQApp Inherits QMainWindow Public Sub New() Me.SetWindowTitle("Toolbar") Me.InitUI() Me.Resize(280, 200) Me.Move(300, 300) Me.Show() End Sub Private Sub InitUI() Dim newpi As New QIcon("new.png") Dim openpi As New QIcon("open.png") Dim quitpi As New QIcon("quit.png") Dim toolbar As QToolBar = AddToolBar("main toolbar") toolbar.AddAction(newpi, "New File") toolbar.AddAction(openpi, "Open File") toolbar.AddSeparator() Dim quit As QAction = toolbar.AddAction(quitpi, _ "Quit Application") Connect(quit, SIGNAL("triggered()"), qApp, SLOT("quit()")) End Sub Public Shared Sub Main(ByVal args() As String) Dim qapp As New QApplication(args) Dim app as New VBQApp QApplication.Exec() End Sub End Class ``` 我們創建一個帶有三個動作對象和一個分隔符的工具欄。 ```vb Dim newpi As New QIcon("new.png") Dim openpi As New QIcon("open.png") Dim quitpi As New QIcon("quit.png") ``` 工具欄動作對象將顯示這些圖標。 ```vb Dim toolbar As QToolBar = AddToolBar("main toolbar") ``` `QMainWindow`類的`AddToolBar()`方法為應用創建一個工具欄。 文本字符串為工具欄命名。 此名稱用于引用此工具欄,因為一個應用中可以有多個工具欄。 如果右鍵單擊窗口區域,我們將看到一個可檢查的選項,該選項顯示/隱藏工具欄。 ```vb toolbar.AddSeparator() ``` 我們創建一個垂直分隔符。 ```vb Connect(quit, SIGNAL("triggered()"), qApp, SLOT("quit()")) ``` 當我們單擊退出操作對象時,應用終止。 ![Toolbar](https://img.kancloud.cn/fc/2d/fc2df2023f844dc7396d9117e4d27040_256x225.jpg) 圖:工具欄 ## 撤銷重做 以下示例演示了如何停用工具欄上的工具欄按鈕。 這是 GUI 編程中的常見做法。 例如,保存按鈕。 如果我們將文檔的所有更改都保存到磁盤上,則在大多數文本編輯器中,“保存”按鈕將被停用。 這樣,應用會向用戶指示所有更改都已保存。 ```vb ' ZetCode Mono Visual Basic Qt tutorial ' ' This program disables/enables ' toolbuttons on a toolbar ' ' author jan bodnar ' last modified May 2009 ' website www.zetcode.com Imports Qyoto Public Class VBQApp Inherits QMainWindow Dim clicks As Integer = 0 Dim undoButton As QToolButton Dim redoButton As QToolButton Public Sub New() Me.SetWindowTitle("Undo redo") Me.InitUI() Me.Resize(280, 200) Me.Move(300, 300) Me.Show() End Sub Private Sub InitUI() Dim undoi As New QIcon("undo.png") Dim redoi As New QIcon("redo.png") Dim quitpi As New QIcon("quit.png") Dim toolbar As New QToolBar undoButton = New QToolButton redoButton = New QToolButton Dim undoAction As New QAction(undoi, "Undo", undoButton) Dim redoAction As New QAction(redoi, "Redo", redoButton) undoButton.SetDefaultAction(undoAction) redoButton.SetDefaultAction(redoAction) toolbar.AddSeparator() toolbar.AddWidget(undoButton) toolbar.AddWidget(redoButton) Dim quit As QAction = toolbar.AddAction(quitpi, "Quit Application") Connect(quit, SIGNAL("triggered()"), qApp, SLOT("quit()")) Connect(undoButton, SIGNAL("triggered(QAction*)"), _ Me, SLOT("Count(QAction*)")) Connect(redoButton, SIGNAL("triggered(QAction*)"), _ Me, SLOT("Count(QAction*)")) AddToolBar(toolbar) End Sub <Q_SLOT()> _ Private Sub Count(ByVal action As QAction) If "Undo".Equals(action.Text) clicks -= 1 Else clicks += 1 End If If clicks <= 0 undoButton.SetDisabled(True) redoButton.SetDisabled(False) End If If clicks >= 5 undoButton.SetDisabled(False) redoButton.SetDisabled(True) End If End Sub Public Shared Sub Main(ByVal args() As String) Dim qapp As New QApplication(args) Dim app As New VBQApp QApplication.Exec() End Sub End Class ``` 在我們的示例中,我們有三個`QAction`對象和一個分隔符。 在撤消或重做按鈕上單擊幾下后,它們將被停用。 外觀上,按鈕顯示為灰色。 ```vb Dim clicks As Integer = 0 ``` `clicks`變量確定哪個按鈕被激活或停用。 ```vb Connect(undoButton, SIGNAL("triggered(QAction*)"), _ Me, SLOT("Count(QAction*)")) Connect(redoButton, SIGNAL("triggered(QAction*)"), _ Me, SLOT("Count(QAction*)")) ``` 單擊工具欄按鈕,將發射`triggered()`信號。 我們將此信號連接到`Count()`方法。 它接收觸發它的`QAction`對象。 ```vb If "Undo".Equals(action.Text) clicks -= 1 Else clicks += 1 End If ``` 撤消工具欄按鈕從`clicks`變量中減去 1。 重做添加 1。根據`clicks`變量的值,我們啟用/禁用工具欄按鈕。 ```vb If clicks <= 0 undoButton.SetDisabled(True) redoButton.SetDisabled(False) End If ``` `SetDisabled()`方法激活或停用工具欄按鈕。 ![Undo redo](https://img.kancloud.cn/89/eb/89eb34c02c006244a0b2b5a7fa325ad8_306x225.jpg) 圖:撤銷和重做 在 Visual Basic Qyoto 教程的這一部分中,我們提到了菜單和工具欄。
                  <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>

                              哎呀哎呀视频在线观看