QT:控制元件精講(一)按鈕
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.