Qt 狀態欄設置


 

版權聲明

該文章原創於Qter開源社區(www.qter.org),作者yafeilinux,轉載請注明出處!



 
 
導語

在程序主窗口QMainWindow中,主要包含菜單欄,工具欄,中心部件和狀態欄。前面幾個已經講過了,這一篇講解狀態欄的使用。

 

環境是: Windows 7 + Qt 4.8.1 +Qt Creator 2.4.1



目錄

一、添加動作狀態提示
二、顯示其他臨時信息
三、顯示永久信息



 
 
正文

一、添加動作狀態提示

 

1. 首先還是打開上一篇完成的程序。對於菜單動作添加狀態提示,可以很容易的在設計器中來完成。

 

2. 下面進入設計模式,在Action 編輯器中選中新建動作,然后在右面的屬性編輯器中將其statusTip 更改為“新建文件”。如下圖所示。
<ignore_js_op> 8-1更改動作狀態提示.png

 

3. 這時運行程序,當光標移動到新建動作上時,在下面的狀態欄將會出現設置的提示。如下圖所示。

 

<ignore_js_op> 8-2動作提示運行效果.png

 

   我們可以按照這種方式來設置其他動作的狀態欄提示信息。

 

二、顯示其他臨時信息

 

狀態信息可以被分為三類:臨時信息,如一般的提示信息,上面講到的動作提示就是臨時信息;正常信息,如顯示頁數和行號;永久信息,如顯示版本號或者日期。可以使用showMessage() 函數來顯示一個臨時消息,它會出現在狀態欄的最左邊。一般用addWidget() 函數添加一個QLabel 到狀態欄上用於顯示正常信息,它會生成到狀態欄的最左邊,可能會被臨時消息所掩蓋。

 

1. 我們到mainwindow.cpp 文件的構造函數最后面添加如下一行代碼:

 

ui -> statusBar ->showMessage(tr(" 歡迎訪問 Qt 愛好者社區! " ));

 

這樣就可以在運行程序時顯示指定的狀態提示了。效果如下圖所示。

 

<ignore_js_op> 8-3顯示臨時提示.png

 

這個提示還可以設置顯示的時間。如:

 

ui -> statusBar ->showMessage(tr(" 歡迎訪問 Qt 愛好者社區! " ),   2000 );

 

這樣提示顯示2000 毫秒即2 秒后會自動消失。

 

2. 下面我們在狀態欄添加一個標簽部件用來顯示一般的提示信息。因為無法在設計模式向狀態欄添加部件,所以只能使用代碼來實現。先在mainwindow.h 文件中添加類的前置聲明:

 

class   QLabel ;

 

然后添加一個私有對象定義:

 

QLabel   * statusLabel ;

 

下面到mainwindow.cpp 文件中,先添加頭文件聲明:

 

#include   <QLabel>

 

然后到構造函數中將前面添加的:
ui -> statusBar ->showMessage(tr(" 歡迎訪問 Qt 愛好者社區! " ),   2000 );
一行代碼注釋掉,再添加如下代碼:
 
statusLabel = new QLabel;
statusLabel->setMinimumSize(150, 20); //  設置標簽最小大小
statusLabel->setFrameShape(QFrame::WinPanel); //  設置標簽形狀
statusLabel->setFrameShadow(QFrame::Sunken); //  設置標簽陰影
ui->statusBar->addWidget(statusLabel);
statusLabel->setText(tr(" 歡迎訪問Qt愛好者社區!" ));

 

這時運行程序,效果如下圖所示。

 

<ignore_js_op> 8-4一般狀態顯示.png

 

下面就可以在需要顯示狀態的時候,調用statusLabel 來設置文本了。

 

三、顯示永久信息

 

如果要顯示永久信息,要使用addPermanentWidget() 函數來添加一個如QLabel 一樣的可以顯示信息的部件,它會生成在狀態欄的最右端,不會被臨時消息所掩蓋。

 

我們在構造函數中添加如下代碼:

 

QLabel   * permanent = new QLabel(this);
permanent->setFrameStyle(QFrame::Box | QFrame::Sunken);
permanent->setText(
   tr("<a href=\"http://www.yafeilinux.com\">yafeilinux.com</a>"));
permanent->setTextFormat(Qt::RichText);
permanent->setOpenExternalLinks(true);
 
ui->statusBar->addPermanentWidget(permanent);

 

這樣就在狀態欄的右側添加了一個網站的超鏈接,點擊該鏈接就會自動在瀏覽器中打開網站。運行程序,效果如下圖所示。

 

<ignore_js_op> 8-5顯示永久信息.png



結語

到這里整個文本編輯器的程序就算寫完了。我們這里沒有寫幫助菜單的功能實現,大家可以自己添加。而且程序中也有很多漏洞和不完善的地方,如果有興趣,大家也可以自己修改。因為時間和篇幅的原因,我們這里就不再過多的講述。如果想學習一下多文檔編輯器的實現,可以參考 QtQt Quick開發實戰精解》 一書的多文檔編輯器的實例。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM