Qt菜单栏-工具栏-状态栏
1、創建動作
QAction是Qt中用于添加動作的類,可以將它添加在菜單,作為一個菜單項,也可以添加到工具欄,作為一個工具欄按鈕。
- 其中參數一是設置該操作按鈕的圖標,":/images/icon"是資源文件的路徑
- 參數二中"&“號代表設置快捷鍵為"Alt+o”
QAction *open = new QAction(QIcon(“:/images/icon”),“Open(&O)”,this);
【關聯動作的槽函數】
//綁定槽函數 connect(open, &QAction::triggered, this, &MainWindow::openAct); //槽函數定義 void MyNotePad::openAct() { ... }2、設置快捷鍵
設置快捷鍵為"Ctrl+o",這里使用QKeySequence類是為了可以跨平臺,例如pc和mac下的鍵盤不一樣,Qt可以根據平臺不同設置相應的快捷鍵。該類中為我們定義了很多內置的快捷鍵,可以直接使用,例如下面注釋的一行。也可以自己創建一個QKeySequence類,傳入我們想要設置的快捷鍵。
//open->setShortcut(QKeySequence(QKeySequence::Open)); open->setShortcut(QKeySequence("Ctrl+O"));3、設置工具提示
open->setToolTip(“open file”);//不寫默認為行為名稱
4、動作提示
open->setStatusTip(“open existing file”);
5、 添加菜單
在菜單欄中添加一個菜單。因為Qt界面工程,默認自帶了菜單欄、工具欄和狀態欄,所以我們可以直接使用ui->menuBar來調用。
QMenu *file = ui->menuBar->addMenu("File(&F)"); menuBar()->addMenu("文件");6、給菜單添加動作
//將動作添加為一個菜單項 file->addAction(open);7、添加道工具
ui->mainToolBar->addAction(open);8、狀態欄提醒
狀態欄可以顯示臨時信息、永久信息和其他組件。
// 還可以設定顯示時間,毫秒為單位,例如: statusBar()->showMessage("歡迎!",2000);狀態欄中顯示一些組件:
QLabel *statusLabel; statusLabel = new QLabel(this); statusLabel->setFrameShape(QFrame::WinPanel); statusLabel->setFrameShadow(QFrame::Sunken); ui->statusBar->addWidget(statusLabel); statusLabel->setText("歡迎!!!");這樣就可以在需要顯示信息的時候,調用statusLabel->setText()來設置了。
狀態欄顯示永久信息:
需要使用addPermanentWdget函數來添加一個可以顯示信息的組建,它會顯示在狀態欄的右側,不會被臨時信息所遮蓋。
//顯示一個超鏈接: QLabel *permanent = new QLabel; permanent->setFrameStyle(QFrame::Box | QFrame::Sunken); permanent->setText(tr("<a href=\"http://www.baidu.com\">baidu.com</a>")); permanent->setTextFormat(Qt::RichText); //設置為超文本 permanent->setOpenExternalLinks(true); //開啟自動打開超鏈接 ui->statusBar->addPermanentWidget(permanent);顯示一個滑塊: slider = new QSlider(Qt::Horizontal, this); slider->setMaximum(100); slider->setMaximumWidth(200); ui->statusBar->addPermanentWidget(slider); connect(slider, &QSlider::valueChanged, this, &MainWindow::set_label_value);Qt實現一個記事本test
功能:
新建文件、保存文件
打開指定的文本文件 (文件對話框,菜單欄)
顯示文件內容 (textEdit)
修改文件內容并保持(工具欄 ,快捷鍵)
工具欄設置字體,背景顏色(字體對話框,顏色對話框,工具欄)
總結
以上是生活随笔為你收集整理的Qt菜单栏-工具栏-状态栏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 手机开机启动,手机怎么开
- 下一篇: 关于Unity3D的初步学习研究周记