Qt入門 工具欄QToolBar和選單欄QMenuBar(六)
阿新 • • 發佈:2018-11-10
只有在繼承了
QMainWindow
的窗體,才會有this->menuBar()->addMenu();
以及this->addToolBar()
函式。
Qmune
QMune
與QMenuBar
之間的關係見下面的程式碼。
//方法1:
QMenu *menu= menuBar()->addMenu(tr("&file"));//QMainWindow中的menuBar函式返回建立好的menuBar的指標,可分解為如下兩行
//方法2:
QMenuBar *mymenubar=menuBar();
QMenu *mune =mymenubar-> addMenu("file");
在宣告Qmune
之前需要先宣告幾個QAction
,QAction
用來抽象的表示一個動作,它包括行為、屬性等引數:
//建立開啟檔案動作
fileOpenAction = new QAction(QIcon(tr("images/open.ico")), tr("Open File"), this);
//設定開啟檔案動作的快捷鍵
fileOpenAction->setShortcut(tr("Ctrl + O"));
//設定開啟檔案動作的提示資訊
fileOpenAction->setStatusTip(tr("open the file" ));
//關聯開啟檔案動作的訊號和槽
connect(fileOpenAction, SIGNAL(triggered()), this, SLOT(fileOpenActionSlot()));
然後將QAction
新增到Qmune
中:
void ZWindow::createMenu()
{
menu = this->menuBar()->addMenu(tr("file"));
menu->addAction(fileOpenAction);
menu->addAction(lutFileOpenAction);
menu-> addAction(fileSaveAction);
menu = this->menuBar()->addMenu(tr("shader"));
menu->addAction(vertfileChangeAction);
menu->addAction(fragfileChangeAction);
menu = this->menuBar()->addMenu(tr("Effect"));
menu->addAction(EffecChangeAction1);
menu->addAction(EffecChangeAction2);
menu->addAction(EffecChangeAction3);
menu->addAction(EffecChangeAction4);
menu->addAction(EffecChangeAction5);
}
上段程式碼建立的Mune見下圖:
QToolBar
和QMune
不同,QToolBar
出現的地方在選單欄的下面,其初始化以及新增動作的程式碼見下圖:
toolbar = this->addToolBar(tr("file"));
toolbar->addAction(fileOpenAction);
toolbar->addAction(lutFileOpenAction);
toolbar->addAction(fileSaveAction);
toolbar= this->addToolBar(tr("shader"));
toolbar->addAction(vertfileChangeAction);
toolbar->addAction(fragfileChangeAction);
toolbar= this->addToolBar(tr("Effect"));
toolbar->addAction(EffecChangeAction1);
toolbar->addAction(EffecChangeAction2);
toolbar->addAction(EffecChangeAction3);
toolbar->addAction(EffecChangeAction4);
toolbar->addAction(EffecChangeAction5);
其效果圖見下圖: