一、新建一個新的Qt Gui應用,項目名稱隨意,例如MyMainWindow,基類選擇QMainWindow,類名爲MainWindow。編輯器
二、項目創建後,雙擊mainwindow.ui文件,在界面的「在這裏輸入」的地方進行雙擊,改寫爲「文件(&F)」,並按下回車鍵。此時,界面左上角顯示「文件(F)」,並將其快捷鍵設置爲Alt+F。函數
三、同理,在文件的下拉菜單中添加「新建」選項。此時,在Action編輯器中能夠看到剛添加的新建菜單,以下圖第一行所示。工具
四、雙擊action_N,能夠打開"新建"選項的動做編輯屬性對話框,以下圖所示。並設置其快捷鍵爲Ctrl+N。注意圖標後面的黑色下拉箭頭能夠用於選擇添加資源仍是添加文件。經過該箭頭選擇添加資源,能夠實現對新建選項對應圖標的添加。此處,咱們須要事先在項目中添加圖標文件,才能在該下拉箭頭添加資源時找到對應的圖標,作法見下步。ui
五、在工程項目單擊右鍵選擇添加新文件,同時選擇Qt下的Qt資源文件,並設置名稱爲myResources,此時,工程中多了後綴爲qrc的資源文件,並自動切換到該文件所在的界面。經過點擊界面左下角的添加按鈕進行圖標資源的添加。此時須要先添加前綴,再添加文件。前綴默認爲/new/prefix1,此時能夠根據添加對象的名稱隨便修改,但不要用中文,完成以後注意保存文件。添加完成以下圖所示。this
六、此時,從新回到新建動做屬性對話框,單擊圖標選項末端的黑色下拉箭頭,選擇添加資源,選擇對應的圖標。完成以後,在相應的ui文件中顯示新建選項前出現對應圖標,同時運行後,顯示相應的效果。spa
七、前面演示了經過ui文件來進行菜單欄選項的添加,下面經過程序來實現菜單欄及其下拉菜單各個選項、工具欄、狀態欄以及添加懸浮工具窗和創建文本窗編輯器的方法。設計
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 #include "qtextcodec.h" 4 #include <QToolButton> 5 #include <QSpinBox> 6 #include <QTextEdit> 7 #include<QMdiSubWindow> 8 #include<QLabel> 9 10 MainWindow::MainWindow(QWidget *parent) : 11 QMainWindow(parent), 12 ui(new Ui::MainWindow) 13 { 14 ui->setupUi(this); 15 QTextCodec::setCodecForTr(QTextCodec::codecForLocale());//解決中文字符亂碼問題 16 17 QAction *openAction = new QAction(tr("&打開"), this); // 建立新的動做 18 QIcon icono(":/myImages/fileopen.png");// 添加圖標 19 openAction->setIcon(icono); 20 openAction->setShortcut(QKeySequence(tr("Ctrl+O"))); // 設置快捷鍵 21 ui->menu->addAction(openAction); // 在文件菜單中設置新的打開動做 22 23 QAction *saveAction = new QAction(tr("&保存"), this); 24 QIcon icons(":/myImages/filesave.png"); 25 saveAction->setIcon(icons); 26 saveAction->setShortcut(QKeySequence(tr("Ctrl+S"))); 27 ui->menu->addAction(saveAction); 28 29 QAction *saveasAction = new QAction(tr("&另保存"), this); 30 QIcon icona(":/myImages/filesaveas.png"); 31 saveasAction->setIcon(icona); 32 saveasAction->setShortcut(QKeySequence(tr("Ctrl+A"))); 33 ui->menu->addAction(saveasAction); 34 35 QMenu *editMenu = ui->menuBar->addMenu(tr("編輯(&E)"));//使用ui->menuBar來獲取QMainWindow的菜單欄 36 QAction *findAction = editMenu->addAction(tr("&查找")); 37 QIcon iconf(":/myImages/filefind.png"); 38 findAction->setIcon(iconf); 39 findAction->setShortcut(QKeySequence(tr("Ctrl+F"))); 40 41 QMenu *helpMenu = ui->menuBar->addMenu(tr("幫助(&P)")); 42 43 44 QActionGroup *group = new QActionGroup(this);//創建動做組 45 QAction *action_L = group->addAction(tr("左對齊(&L)")); 46 action_L->setCheckable(true);//狀態可選中 47 QAction *action_R = group->addAction(tr("右對齊(&R)")); 48 action_R->setCheckable(true); 49 QAction *action_C = group->addAction(tr("居中(&C)")); 50 action_C->setCheckable(true); 51 action_L->setChecked(true);//指定action_L爲選中狀態 52 editMenu->addSeparator();//向菜單欄中添加間隔器,編輯的下拉菜單最後選項下面添加一條水平分隔線 53 editMenu->addAction(action_L);//向菜單中添加動做 54 editMenu->addAction(action_R); 55 editMenu->addAction(action_C); 56 57 58 QToolButton *toolBtn = new QToolButton(this); 59 toolBtn->setText(tr("顏色")); 60 QMenu *colorMenu = new QMenu(this); 61 colorMenu->addAction(tr("紅色")); 62 colorMenu->addAction(tr(" 綠色")); 63 toolBtn->setMenu(colorMenu); 64 //設置彈出模式,右側有小箭頭用於下拉菜單選擇。去掉該句,須要長按tooBtn才能彈出下拉菜單 65 toolBtn->setPopupMode(QToolButton::MenuButtonPopup); 66 ui->mainToolBar ->addWidget(toolBtn);//裏喲個addWidget()函數向工具欄中添加部件 67 QSpinBox *spinBox = new QSpinBox(this); 68 ui->mainToolBar->addWidget(spinBox); 69 70 //顯示臨時消息,顯示2000毫秒即2秒鐘 71 ui->statusBar->showMessage(tr("歡迎使用Qt"), 2000); 72 //建立標籤,設置標籤樣式並顯示消息,而後將其以永久部件的形式添加到狀態欄 73 QLabel *permanent = new QLabel(this); 74 permanent->setFrameStyle(QFrame::Box | QFrame::Sunken); 75 permanent->setText(tr("Qt窗口設計")); 76 ui->statusBar->addPermanentWidget(permanent); //添加永久性信息 77 78 } 79 80 MainWindow::~MainWindow() 81 { 82 delete ui; 83 } 84 85 void MainWindow::on_action_N_triggered() 86 { 87 QTextEdit *edit = new QTextEdit(this);//新建文本編輯器部件 88 //使用QWdiArea類的addSunWindow()函數建立子窗口,以文本編輯器爲中心部件 89 QMdiSubWindow *child = ui->mdiArea->addSubWindow(edit); 90 child->setWindowTitle(tr("多文檔編輯器子窗口")); 91 child->show(); 92 } 93 94 void MainWindow::on_action_Dock_triggered() 95 { 96 ui->dockWidget->show(); 97 }
八、在界面中添加中心部件(如多文檔編輯器)或者Dock部件(如工具箱),須要在ui界面文件中拖入一個MidArea部件或者一個Dock部件,並在Action編輯器中找到對應的部件,單擊右鍵選擇「轉到槽」,爲其添加一個triggered()函數,編寫其相應的功能。同時還能夠在右側對這些部件進行屬性設置。3d
九、設置完畢後,運行效果以下面的截圖所示。code