《Qt》part 10 Qt5 5 狀態列設定

2021-07-27 13:05:38 字數 2560 閱讀 1514

《qt》part 10 qt5.5 狀態列設定

1、普通的狀態列(statusbar)

在程式的普通模式下,狀態列包括連個狀態指示器:當前的操作指示,也用於顯示狀態提示和其他的一些臨時訊息。分為常規提示、狀態提示、臨時訊息等。

void mainwindow::createstatusbar()

qmainwindow::statusbar()函式返回乙個指向狀態列的指標。[在第一次呼叫statusbar()函式的時候會建立狀態列。]狀態列只是器是一些簡單的qlabel,可以在任何需要的時候改變它們的文字。已經在formulalabel中新增了乙個縮排格式,以便讓那些在他裡面顯示的文字能夠與它在左側邊有乙個小的偏移量。當把這些qlabel新增到狀態列的時候,它們會自動被重定義為父物件,以便讓它們成為狀態列的子物件。

單元格定位指示器只需要非常小的空間,並且在重新定義視窗大小時,任何多餘的空間都會分配給位於右側的單元格公式指示器。這是通過在公式標籤的statusbar->addwidget(formulalabel,1)中呼叫了乙個伸展因子實現的。位置指示器的預設伸展因子為0,這也就意味著它不被伸展,也就沒有分隔符那種效果。

當 qstatusbar擺放這些指示器視窗部件時,它會盡量考慮由qwidget::sizehint()提供的每乙個視窗部件的理想大小,然後再對那些可伸展的任意視窗部件進行伸展以填滿全部可用空間。乙個視窗部件的理想大小取決於這個視窗部件的內容及改變內容時變化的大小。為了避免對定位指示器連續不斷地重定義大小,設定它的最小尺寸大小為它能包含的最大數字元(「w999」)和一些空格的總大小。還把它的對齊方式設定為qt::alignhcenter,以便可以在水平方向上居中對齊它的文字。

在函式結尾的附近,將函式的訊號槽函式連線起來。

updatestatusbar()槽可以更新單元格定位指示器和單元格公式指示器。只要使用者把單元格游標移動到乙個新的單元格,這個槽就會得到呼叫。該槽也可以作為乙個普通函式而在createstatusbar()的最後用於初始化這些指示器。因為spreadsheet不會再一開始的時候就發射currentcellchanged()訊息,所以還必須這樣做。

void mainwindow::spreadsheetmodified()

spreadsheetmodified()槽把windowmodifed屬性設定為true,用以更新標題欄。這個函式也會更新位置和公式指示器,以便可以讓它們反映事件的當前狀態。 2、

qdockwidget 和 qtreewidget 樹形部件 構成樹形選擇項

qtreewidget *treewidget = new qtreewidget; //建立樹形控制項 

qstringlist headers; //樹頭

headers << "name" << "number";

treewidget->setheaderlabels(headers);

qstringlist roottextlist; //樹的根節點

roottextlist << "root" << "0"; //新增選項 root --- 0

qtreewidgetitem *root = new qtreewidgetitem(treewidget, roottextlist);

new qtreewidgetitem(root, qstringlist() << qstring("leaf 1") << "1"); //以根節點為父控制項,新增選項 leaf1 ---- 1

qtreewidgetitem *leaf2 = new qtreewidgetitem(root,

qstringlist() << qstring("leaf 2") << "2"); //以根節點為父控制項,新增選項 leaf2 ---- 2

leaf2->setcheckstate(0, qt::checked); //為leaf2 設定勾選窗

qlistrootlist;

rootlist << root;

treewidget->inserttoplevelitems(0, rootlist); //將樹形選項 新增入tree控制項

qdockwidget *dockwidget = new qdockwidget(tr("dockwidget")); //建立錨接部件

dockwidget->setobjectname("dockwidget test");

dockwidget->setallowedareas(qt::rightdockwidgetarea | qt::leftdockwidgetarea); //錨接部件 允許停靠的區域,左右

dockwidget->setwidget(treewidget); //設定錨接部件的內容 treewidget

adddockwidget(qt::rightdockwidgetarea, dockwidget);

效果:

3、利用treewidget、treewidgetitem、dockwidget定製狀態列

Qt 狀態列設定

目錄 一 新增動作狀態提示 二 顯示其他臨時資訊 三 顯示永久資訊 正文一 新增動作狀態提示 2.下面進入設計模式,在action編輯器中選中新建動作,然後在右面的屬性編輯器中將其statustip更改為 新建檔案 如下圖所示。3.這時執行程式,當游標移動到新建動作上時,在下面的狀態列將會出現設定的...

Qt設定狀態列

主視窗的狀態列指標 h qstatusbar statusbar const 定義 cpp this statusbar 呼叫資訊種類 臨時,一般,永久。1 臨時資訊 顯示臨時資訊 statusbar showmessage tr 系統已初始化完成 6000 顯示臨時資訊,6s後關閉2 一般資訊 m...

Qt開發 狀態列設定

1.在qt 裡面,狀態列顯示的資訊有三種型別 臨時資訊 一般資訊和永久資訊。其中,臨時資訊指臨時顯示的資訊,比如qaction 的提示等,也可以設定自己的 臨時資訊,比如程式啟動之後顯示ready,一段時間後自動消失 這個功能可 以使用qstatusbar 的showmessage 函式來實現 一般...