【Qt】MainWindow窗口状态栏
00. 目錄
文章目錄
- 00. 目錄
- 01. 概述
- 02. 開發(fā)環(huán)境
- 03. 顯示菜單動作狀態(tài)
- 04. 顯示臨時信息
- 05. 顯示正常信息
- 06. 顯示永久信息
- 07. 附錄
01. 概述
在程序主窗口QMainWindow中,主要包含菜單欄、工具欄、中心部件和狀態(tài)欄。本次我們來熟悉狀態(tài)欄相關(guān)的操作。
02. 開發(fā)環(huán)境
Windows系統(tǒng):Windows10
Qt版本:Qt5.15或者Qt6
03. 顯示菜單動作狀態(tài)
3.1 基于簡單的文本操作程序,對于菜單動作添加狀態(tài)提示,可以直接在設(shè)計器中來完成。
3.2 進入設(shè)計模式,在Action編輯器中選中新建動作,然后在右面的屬性編輯器中將其statusTip更改為“新建文件”。如下圖所示。
3.3 運行程序,當(dāng)光標(biāo)移動到新建動作上時,在下面的狀態(tài)欄將會出現(xiàn)設(shè)置的提示。如下圖所示。
04. 顯示臨時信息
狀態(tài)信息被分為三類:
臨時信息,如一般的提示信息,上面講到的動作提示就是臨時信息;
正常信息,如顯示頁數(shù)和行號;
永久信息,如顯示版本號或者日期。
可以使用showMessage()函數(shù)來顯示一個臨時消息,它會出現(xiàn)在狀態(tài)欄的最左邊。一般用addWidget()函數(shù)添加一個QLabel到狀態(tài)欄上用于顯示正常信息,它會生成到狀態(tài)欄的最左邊,可能會被臨時消息所掩蓋。
4.1 我們到mainwindow.cpp文件的構(gòu)造函數(shù)最后添加如下一行代碼:
//顯示臨時信息ui->statusbar->showMessage(tr("歡迎訪問Qt主頁"));4.2 運行程序時顯示指定的狀態(tài)提示了。效果如下圖所示。
4.3 設(shè)置顯示時長
//顯示臨時信息 2秒后自動消失ui->statusbar->showMessage(tr("歡迎訪問Qt主頁"), 2000);05. 顯示正常信息
在狀態(tài)欄添加一個標(biāo)簽部件用來顯示一般的提示信息。因為無法在設(shè)計模式向狀態(tài)欄添加部件,所以只能使用代碼來實現(xiàn)。先在mainwindow.h文件中添加類的前置聲明:
class QLabel;然后添加一個私有對象定義:
QLabel *statusLabel;在構(gòu)造函數(shù)中添加如下代碼
//顯示臨時信息 2秒后自動消失//ui->statusbar->showMessage(tr("歡迎訪問Qt主頁"), 2000);statusLabel = new QLabel;//設(shè)置標(biāo)簽最小大小statusLabel->setMinimumSize(150, 20);//設(shè)置標(biāo)簽形狀statusLabel->setFrameShape(QFrame::WinPanel);//設(shè)置標(biāo)簽陰影statusLabel->setFrameShadow(QFrame::Sunken);//添加控件ui->statusbar->addWidget(statusLabel);statusLabel->setText(tr("歡迎來到湖北武漢"));程序執(zhí)行結(jié)果
06. 顯示永久信息
要顯示永久信息,要使用addPermanentWidget()函數(shù)來添加一個如QLabel一樣的可以顯示信息的部件,它會生成在狀態(tài)欄的最右端,不會被臨時消息所掩蓋。
在構(gòu)造函數(shù)中添加如下代碼:
QLabel *perLabel = new QLabel(this);perLabel->setFrameStyle(QFrame::Box | QFrame::Sunken);perLabel->setText(tr("<a href=\"http://www.baidu.com\">百度</a>"));perLabel->setTextFormat(Qt::RichText);perLabel->setOpenExternalLinks(true);ui->statusbar->addPermanentWidget(perLabel);程序執(zhí)行結(jié)果
07. 附錄
源碼下載:【Qt】MainWindow窗口狀態(tài)欄.rar
總結(jié)
以上是生活随笔為你收集整理的【Qt】MainWindow窗口状态栏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Qt】简单Qt文本查找功能
- 下一篇: 【Qt】Qt定时器