Qt控制元件精講一:按鈕

little_two_two發表於2013-12-18

Qt Creater提供6種Button控制元件。如圖1。


Button控制元件介紹

控制元件類 控制元件名 中文名
QPushButton PushButton 推動按鈕
QToolButton ToolButton 工具按鈕
QRadioButton RadioButton 單選按鈕
QCheckBox CheckBox 複選鍵
QCommandLinkButton CommandLinkButton 命令連結按鈕
QButtonBox ButtonBox 按鈕盒

1、PushButton控制元件

1)控制元件位置:Button->PushButton

2)控制元件介紹:該控制元件繼承自QButton類,通常用於執行命令或觸發事件。

3)控制元件屬性設定選項:

(1)name:該控制元件對應原始碼中的名字。

(2)text:該控制元件對應圖形介面中顯示的名字。

(3)font:設定text的字型。

(4)enabled:該控制元件是否可用。

4)常用成員函式:

(1)QPushButton::QPushButton(const QString &text,QWidget *parent,const char *name = 0);

構造一個名稱為name,父物件為parent並且文字為text的推動按鈕。

(2)void QButton::pressed()[訊號]

當按下該按鈕時發射訊號。

(3)void QButton::clicked()[訊號]

當單擊該按鈕時發射訊號。

(4)void QButton::released()[訊號]

當釋放該按鈕時,發射訊號。

(5)void QButton::setText(const QString &)

設定該按鈕上顯示的文字。

(6)QString QButton::text()const

返回該按鈕上顯示的文字。

2、RadioButton控制元件

1)控制元件位置:Buttons->RadioButton

2)控制元件介紹:單選框,繼承自QButton類,通常成組出現,用於提供兩個或多個互斥選項。

3)控制元件屬性設定選項:

(1)name:該控制元件對應原始碼中所顯示的名字。

(2)text:該控制元件對應圖形介面中所顯示的名字。

(3)font:設定text字型。

(4)enabled:該控制元件是否可用,可用為true,不可用為false。

(5)checked:用來設定或返回是否選中單選按鈕,選中為true,未選中為false。

4)常用成員函式:

(1)QRaidoButton::QRadioButton(const QString &text,QWidget *parent,const char *name = 0)

構造一個名稱為name、父物件為parent並且文字為text的單選按鈕。

(2)bool QRadioButton::isChecked()const

返回是否選中單選按鈕,選中時返回true,沒有選中時返回false。

(3)void QButton::setText(const QString &)

設定該按鈕上顯示的文字。

(4)QString QButton::text()const

返回該按鈕上顯示的文字。

(5)void QButton::stateChanged(int state)[signal]

當更改checked屬性值時,將發射訊號。

(6)void QRadioButton::setChecked(bool check)[virtual slot]

設定單選按鈕是否被選中為check。

3、CheckBox控制元件

1)控制元件位置:Buttons->CheckBox

2)控制元件介紹:核取方塊,繼承自QButton,與RadioButton的區別是選則模式,單選框提供多選一,核取方塊提供多選多。

3)控制元件屬性設定選項:

(1)name:該控制元件對應原始碼中所顯示的名字。

(2)text:該控制元件對應圖形介面中所顯示的名字。

(3)font:設定text字型。

(4)enabled:該控制元件是否可用,可用為true,不可用為false。

(5)checked:用來設定或返回是否選中單選按鈕,選中為true,未選中為false。

4)常用成員函式:

(1)QCheckBox::QCheckBox(const QString &text,QWidget *parent,const char *name = 0)

構造一個名稱為name、父物件為parent並且文字為text的核取方塊。

(2)QCheckBox::isChecked()const

選中該核取方塊,返回true,否則返回false。

(3)void QButton::setText(const QString &)

設定該按鈕上顯示的文字。

(4)QString QButton::text()const

返回該按鈕上顯示的文字。

(5)void QButton::stateChange(int state)[signal]

當更改checked屬性時,將發射這個訊號。

(6)void QCheckBox::setChecked(bool check)[槽]

設定核取方塊是否選中,狀態為check的值。

4、ToolButton控制元件

1)控制元件位置:Buttons->ToolButton

2)控制元件介紹:工具按鈕,繼承自QButton類,是一種用於命令或者選項的可以快速訪問的按鈕,通常在ToolBar裡面。工具按鈕通常顯示的是圖示,而不是文字標籤。ToolButton支援自動浮起。在自動浮起模式中,按鈕只有在滑鼠指向它的時候才繪製三維的框架。

3)控制元件設定選項:

(1)name:該控制元件對應原始碼中的名稱。

(2)text:工具按鈕標籤文字。

(3)font:設定工具按鈕標籤的字型。

(4)autoRaise:自動浮起是否生效。

(5)iconSet:提供顯示在按鈕上的圖示的圖示集。

(6)on:工具按鈕是否為開。

(7)textLabel:工具按鈕自動提示文字。

(8)usesTextLabel:自動提示文字textLabel是否工作,預設為false。

4)常用成員函式:

(1)QToolButton::QToolButton(QWidget *parent,const char *name = 0)

構造一個名字為name,父物件為parent的ToolButton。

(2)QToolButton::QToolButton(const QIconset &iconSet,const QString &textLabel,const QString &grouptext,QObject *receiver,const char *slot,QToolBar *parent,const char *name = 0)

構造一個名稱為name,父物件為parent(必須為QToolBar)的工具按鈕。工具按鈕將顯示iconSet,工具提示為textLabel,狀態條資訊為grouptext,同時會將工具按鈕連結到receiver物件的槽函式。

(3)QToolBButton::QToolButton(ArrowType type,QWidget *parent,const char *name = 0)

此建構函式是把工具按鈕構造成箭頭按鈕,type定義了箭頭的方向,可用的值有LeftArrow、RightArrow、UpArrow、DownArrow。

(4)void QToolButton::setAutoRaise(bool enable)

根據引數enable值設定按鈕是否可自動浮起。

(5)void QToolButton::setIcon(const QIconSet &)

設定顯示在工具按鈕上的圖示。

(6)void QToolButton::setOn(bool enable)[虛槽]

設定按鈕是否為開,enable等於true則設定為開,否則設定為關。

(7)void QToolButton::setTextLabel(const QString &)[槽]

設定按鈕的提示標籤。

(8)QString QToolButton::textLabel()const

返回按鈕的提示標籤。

5、CommandLinkButton控制元件

1)控制元件位置:Buttons->CommandLinkButton

2)控制元件介紹:命令連結按鈕,繼承自QPushButton,用於在互斥選項中選擇一項,CommandLinkButton除帶有正常的按鈕上的文字描述文字外,預設情況下,它也將攜帶一個箭頭圖示,表明按下按鈕將開啟另一個視窗或頁面。

3)控制元件屬性設定選項:

(1)name:該控制元件對應原始碼中的名稱。

(2)text:該控制元件對應圖形介面中所顯示的標籤。

(3)font:設定text的字型。

(4)enabled:該控制元件是否可用。

(5)description:一個描述性的標籤,以配合按鈕上的文字。

4)常用成員函式:

(1)QCommandLinkButton::QCommandLinkButton(QWidget *parent = 0)

構造一個父物件為parent的命令連結按鈕。

(2)QCommandLinkButton::QCommandLinkButton(const QString &text,QWidget *parent = 0)

構造一個父物件為parent、文字為text的命令連結按鈕。

(3)QCommandLinkButton::QCommandLinkButton(const QString &text,const QString &description,QWidget *parent = 0)

構造一個父物件為parent、文字為text和描述文字為description的命令連結按鈕。

(4)void QButton::clicked()[訊號]

當單擊該按鈕時,發射訊號。

(5)void QButton::pressed()[訊號]

當按下該按鈕時,發射這個訊號。

(6)void QButton::released()[訊號]

當釋放該按鈕時,發射這個訊號。

(7)void QButton::setText(const QString &)

設定改按鈕上顯示的文字。

(8)QString QButton::text()cosnt

返回按鈕上顯示的文字。

6、ButtonBox控制元件

1)控制元件位置:Buttons->ButtonBox

2)控制元件介紹:按鈕鍵,室友QDialogButtonBox類包裝成的。

3)控制元件屬性設定選項:

(1)name:該控制元件對應原始碼中的名稱。

(2)font:設定text的字型。

(3)enabled:該控制元件是否可用。

(4)centerButtons:ButtonBox中的按鈕是否居中佈局,預設值為false。

(5)orientation:按鈕佈局方向,Qt提供QT::Horizontal和QT::Vertical兩種。

(6)standardButtons:標準按鈕集合。

4)常用成員函式:

(1)QDialogButtonBox::QDialogButtonBox(QWidget *parent = 0)

構造一個按鈕盒,父物件為parent。

(2)QDialogButtonBox::QDialogButtonBox(QT::Orientation orientation,QWidget *parent = 0)

構造一個按鈕盒,父物件為parent,排列方向為orientation,並且包含buttons。

(3)QDialogButtonBox::QDialogButtonBox(StandardButton buttons,QT::Orientation orientation = QT::Horizontal,QWidget *parent = 0)

構造一個按鈕盒,父物件為parent,排列方向為orientation。

(4)void QDialogButtonBox::accepted()[signal]

當單擊按鈕盒裡的定義為AcceptRole和YesRole的按鈕時,發射訊號。

(5)void QDialogButtonBox::addButton(QAbstractButton *button,ButtonRole role)

向按鈕盒裡新增按鈕button,定義按鈕button的角色為role,如果role是無效的,則不新增按鈕,如果按鈕已新增,移除並在次新增為新角色。

(6)QPushButton *QDialogButtonBox::addButton(StandarButton button)

向按鈕盒中新增一個標準按鈕button,並返回標準按鈕。如果按鈕無效,不新增,返回0.

(7)QPushButton *QDialogButtonBox::addButton(const QString &text,ButtonRole role)

建立一個按鈕的文字為text,以指定角色新增到按鈕盒,並返回相應的按鈕,如果role是無效的,則不建立,返回0.

(8)void QDialogButtonBox::clear()

清空該按鈕盒裡的所有按鈕。

(9)void QDialogButtonBox::clicked(QAbstractButton *button)[signal]

當單擊按鈕盒裡的按鈕button時,發射這個訊號。

(10)void QDialogButtonBox::helpRequested()[signal]

當單擊按鈕盒裡的定義為HelpRole的按鈕時,發射這個訊號。

(11)void QDialogButtonBox::rejected()[signal]

當單擊按鈕盒裡定義為RejectRole和NoRole的按鈕時,發射這個訊號。

(12)void QDialogButtonBox::removeButton(QAbstractButton *button)

移除按鈕盒裡的按鈕Button,但是不刪除,設定它的父母為0.


相關文章