qt控制項使用

2021-08-09 21:22:59 字數 4104 閱讀 5967

1.建立視窗

qwidget *window = new qwidget();

window->resize(300, 300);

window->show();

qpushbutton *button = new qpushbutton(tr(""). window);

button->move(100, 100);

button->show();

2.按鈕控制項:qt中button系列根據用途被劃分為不同的定義,其實現框架為qabstractbutton提供按鈕的通用性功能,此為抽象基類,所以無法進行例項化。

(1)pushbutton 按鈕

常見函式:

setgemetry(int x, int y, int w, int h);

setfont(qfont );

qpushbutton::qpushbutton ( qwidget * parent = 0 )

qpushbutton::qpushbutton ( const qstring & text, qwidget * parent = 0 )

qpushbutton::qpushbutton ( const qicon & icon, const qstring & text, qwidget *parent = 0 )

建立乙個命令按鈕text用於描述,qicon用於顯示小圖示

qmenu * qpushbutton::menu () const

獲取與button關聯的彈出選單,如果沒有關聯選單返回0

void qpushbutton::setmenu ( qmenu * menu )

關聯乙個選單到按鈕上,這樣按鈕就形成了選單按鈕

void qpushbutton::showmenu () [slot]

顯示與button相互關聯的按鈕,如果沒有則什麼都不操作。

此函式知道彈出選單被關才會返回。

(2)toolbutton 工具按鈕

其是一種快速訪問按鈕命令或選項。所以通常和q*******搭配使用。工具按鈕通常不顯示文字,而顯示圖示qicon。

(3)radiobutton 單選按鈕

設定文字或icon使用抽象類的介面settext及seticon實現。

(4)checkbutton 核取方塊

(5)commandlinkbutton 命令鏈結按鈕

(6)buttonbox 按鈕盒

3. qlabel

(1) 定義

qlabel* m_labelordered = new qlabel("0", this);

(2) 對文字的左右對齊設定

m_labelordered->setalignment(qt::alignleft);//左對齊

其它還有,橫向對齊:

qt::alignauto – 根據語言內容,大部分是左對齊。右對齊的有:阿拉伯語、希伯來(現代以色列)語

qt::alignleft – 居左

qt::alignright – 居右

qt::alignhcenter – 居中

qt::alignjustify – 兩端對齊。並不是所有時候都有效,有時會被alignauto中斷

豎向對齊:

qt::aligntop – 居頂

qt::alignbottom – 居底

qt::alignvcenter – 居中

同時只可以使用乙個橫向或豎向對齊方式。但是還有乙個同時設定橫豎方向的標記:

qt::aligncenter – 橫豎都居中

內容自動換行:

qlabel::wordbreak

但是,幫助手冊上說:breakanywhere標記在qlabel是不支援的。

如果一定有這樣的需求,可以考慮下面兩個方法:

(1) 在settext()時,用html串賦值,裡面加上換行符

(2) 使用qtextedit還有乙個好處,就是可以對內容進行賦值貼上。

4.qtreewidget

在建構函式裡面建立了乙個qtreewidget的例項。呼叫setcolumncount()函式設定欄數。然後我們要向qtreewidget新增qtreewidgetitem。qtreewidgetitem有九個過載的建構函式。我們在這裡只是來看看其中的乙個:

qtreewidgetitem::qtreewidgetitem ( qtreewidget * parent, 

const

qstringlist & strings, 

inttype = type );

後面我們又建立了乙個qtreewidgetitem,注意它的第乙個引數不是qtreewidget而是qtreewidgetitem型別的,這就把它的父節點設定為前面我們定義的root了。然後我們使用了setcheckstate()函式,讓它變得可以選擇,最後使用addchild()函式把它新增進來。

最後一步,我們建立了乙個qlist型別,前面的root新增進去,然後insert到top items。

增加刪除頂層用:

addtoplevelitem(qtreewidgetitem*);

taketopleveltem(int);

toplevelitem(int); //返回

toplevelitemcount();

增加刪除子層:

addchild(qtreewidgetitem*);

addchildren(const qlist&);

takechild(int);

takechildren();

child(int)  //返回

childcount();

2.高階:

//加checkbox, icon

pnewitem->setflags(qt::itemisselectable | qt::itemisusercheckable |qt::itemisenabled);

pnewitem->setcheckstate(0, qt::unchecked);

//pnewitem->seticon(int , qicon);

//向item裡放一些qt的控制項,如qspinbox,qcombobox,qpushbutton等

this->setitemwidget(pnewitem, 0, new qspinbox());

//獲取某項的qrect, 有時候會很有用,如顯縮圖:

qrect rect = this->visualitemrect(qtreewidgetitem*);

//右鍵選單重寫

contextmenuevent( qcontextmenuevent * event );或者使用訊號itempressed(qtreewidgetitem*, int);

//對頭的操作,可以用qlabel或者qtreewidgetitem對頭進行初始化,

//隱藏頭

header()->hide();

m_pheaderview->setclickable(true);  //能夠發射sectionclicked(int)訊號,可做選單,顯示隱藏列:setsectionhidden(int, bool);issectionhidden(int);

m_pheaderview->setmovable(true);

m_pheaderview->setresizemode(0, qheaderview::fixed);  //固定列寬

m_pheaderview->setdefaultsectionsize(100);  //預設

//排序

treewidget->setsortingenabled(true);

treewidget->header()->setsortindicatorshown(true);

treewidget->header()->setsortindicator(0, qt::ascendingorder);

//要自定義就用訊號

connect( treewidget->header(), signal( sectionclicked(int) ), this, slot( sectionclickedslot(int) ) );

Qt 基本控制項的使用

控制項是介面設計的基本部件,也是各大qt元件中最基本的功能。本文將通過 講解qt中核取方塊 單選框 文字框 布局控制項的使用。首先建立乙個名為dialog的qdialog專案。然後回自動生成dialog.h dialog.c main.c。本文中的例子包括三個核取方塊的水平布局,並用核取方塊來設定文...

Qt常用控制項

qpushbutton的新增。iocn 新增資源檔案 顯示效果為 前面icon後面文字。一般用來新增文字。qtoolbutton的新增。iocn 新增資源檔案 顯示效果toolbuttonstyle中更改,預設toolbuttonicononly toolbuttontextbesidicon。文字...

QT樹控制項 QTreeView

方法一 使用qdirmodel進行目錄的現實,qdirmodel是qt中專為檔案目錄樹型顯示所提供的一種model。具體使用如下 方法二 自行設定樹型結構。treeview.h 檔案 include class treeview public qtreeview treeview.cpp 檔案 in...