目錄
Buttons 按鈕控件
1、常用屬性介紹
?2、按鈕介紹
2.1QPushButton 普通按鈕
2.2QtoolButton 工具按鈕
2.3Radio Button單選按鈕
2.4CheckButton復選按鈕
2.5Commam Link Button命令鏈接按鈕
2.6Dialog Button Box命令鏈接按鈕
Buttons 按鈕控件
在Qt里,最常使用的控件就是按鈕,有了按鈕,就可以點擊,從而響應事件,達到人機交互的效果。Qt 內置了六種按鈕部件如下
- QPushButton:下壓按鈕,繼承 QAbstractButton 類,被 QCommandLinkButton 繼承。常用于執行命令或觸發事件
- QToolButton:工具按鈕,繼承 QAbstractButton 類,是一種用于命令或者選項的可快速訪問的按鈕
- QRadioButton:選擇按鈕,繼承 QAbstractButton 類,通常成組出現,用于提供兩個或多個互斥選項
- QCheckBox:檢查框,繼承 QAbstractButton 類,與 RadioButton 的區別是選擇模式,單選按鈕提供多選一,復選按鈕提供多選
- QCommandLinkButton:命令鏈接按鈕,繼承 QPushButton 類,與 RadioButton 相似,用于在互斥選項中選擇一項, 區別是CommandLinkButton 除帶有正常文字描述文本外,默認攜帶一個箭頭圖標,表明按下按鈕將打開另一個窗口或頁面
- QDialogButtonBox:對話框按鈕,由 QDialogButtonBox 類包裝而成,QDialogButtonBox 繼承 QWidget,常用于對話框里自定義按鈕,比如“確定”和“取消” 按鈕
1、常用屬性介紹
?2、按鈕介紹
2.1QPushButton 普通按鈕
1)控件位置:
Button->PushButton
2)控件介紹:
該控件繼承自QButton類,通常用于執行命令或觸發事件。
3)控件屬性設置選項:
(1)name:該控件對應源代碼中的名字。
(2)text:該控件對應圖形界面中顯示的名字。
(3)font:設置text的字體。
(4)enabled:該控件是否可用。
信號:
void clicked(bool checked = false)
void pressed()
void released()函數接口:
setText(const QString &) //設置按鈕的文字
text() const : QString //獲取按鈕的文件
ui->pushButton->setEnabled(false); //使按鈕失效
ui->pushButton->setEnabled(true); //使按鈕生效
setIcon(const QIcon &) //給按鈕設置一個小圖標//例子:
ui->pushButton->setIcon(QIcon("D:/Downloads/set.ico"));
ui->pushButton->setIconSize(QSize(40, 40));
2.2QtoolButton 工具按鈕
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。
提示:使用工具按鈕需要設置工具菜單
信號
void triggered(QAction *action)
?
//設置工具菜單
void setMenu(QMenu *menu)
//顯示菜單
void showMenu()
?
QMenu 菜單類:
QAction *addAction(const QString &text)
//設置一個菜單QMenu* m = new QMenu(ui->toolButton);//菜單欄m->addAction("西瓜");m->addAction("白菜");m->addAction("蘋果");//把菜單設置到工具按鈕中 ui->toolButton->setMenu(m);//當點擊時顯示菜單
void MainWindow::on_toolButton_clicked()
{ui->toolButton->showMenu(); //顯示菜單
}//獲取觸發信號
void MainWindow::on_toolButton_triggered(QAction* arg1)
{ui->toolButton->setText(arg1->text());
}QToolButton::QToolButton(QWidget *parent,const char *name = 0)
構造一個名字為name,父對象為parent的ToolButton。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對象的槽函數。QToolBButton::QToolButton(ArrowType type,QWidget *parent,const char *name = 0)
此構造函數是把工具按鈕構造成箭頭按鈕,type定義了箭頭的方向,可用的值有LeftArrow、RightArrow、UpArrow、DownArrow。void QToolButton::setAutoRaise(bool enable)
根據參數enable值設置按鈕是否可自動浮起。void QToolButton::setIcon(const QIconSet &)
設置顯示在工具按鈕上的圖標。void QToolButton::setOn(bool enable)[虛槽]
設置按鈕是否為開,enable等于true則設置為開,否則設置為關。void QToolButton::setTextLabel(const QString &)[槽]
設置按鈕的提示標簽。QString QToolButton::textLabel()const
返回按鈕的提示標簽。
2.3Radio Button單選按鈕
1)控件位置:
Buttons->RadioButton
2)控件介紹:
單選框,繼承自QButton類,通常成組出現,用于提供兩個或多個互斥選項。
3)控件屬性設置選項:
(1)name:該控件對應源代碼中所顯示的名字。
(2)text:該控件對應圖形界面中所顯示的名字。
(3)font:設置text字體。
(4)enabled:該控件是否可用,可用為true,不可用為false。
(5)checked:用來設置或返回是否選中單選按鈕,選中為true,未選中為false。
QRaidoButton::QRadioButton(const QString &text,QWidget *parent,const char *name = 0)
構造一個名稱為name、父對象為parent并且文本為text的單選按鈕。bool QRadioButton::isChecked()const
返回是否選中單選按鈕,選中時返回true,沒有選中時返回false。void QButton::setText(const QString &)
設置該按鈕上顯示的文本。QString QButton::text()const
返回該按鈕上顯示的文本。void QButton::stateChanged(int state)[signal]
當更改checked屬性值時,將發射信號。void QRadioButton::setChecked(bool check)[virtual slot]
設置單選按鈕是否被選中為check。
2.4CheckButton復選按鈕
1)控件位置:
Buttons->CheckBox
2)控件介紹:
復選框,繼承自QButton,與RadioButton的區別是選則模式,單選框提供多選一,復選框提供多選多。
3)控件屬性設置選項:
(1)name:該控件對應源代碼中所顯示的名字。
(2)text:該控件對應圖形界面中所顯示的名字。
(3)font:設置text字體。
(4)enabled:該控件是否可用,可用為true,不可用為false。
(5)checked:用來設置或返回是否選中單選按鈕,選中為true,未選中為false。
QCheckBox::QCheckBox(const QString &text,QWidget *parent,const char *name = 0)
構造一個名稱為name、父對象為parent并且文本為text的復選框。QCheckBox::isChecked()const
選中該復選框,返回true,否則返回false。void QButton::setText(const QString &)
設置該按鈕上顯示的文本。QString QButton::text()const
返回該按鈕上顯示的文本。void QButton::stateChange(int state)[signal]
當更改checked屬性時,將發射這個信號。void QCheckBox::setChecked(bool check)[槽]
設置復選框是否選中,狀態為check的值。
2.5Commam Link Button命令鏈接按鈕
1)控件位置:
Buttons->CommandLinkButton
2)控件介紹:
命令鏈接按鈕,繼承自QPushButton,用于在互斥選項中選擇一項,CommandLinkButton除帶有正常的按鈕上的文字描述文本外,默認情況下,它也將攜帶一個箭頭圖標,表明按下按鈕將打開另一個窗口或頁面。
3)控件屬性設置選項:
(1)name:該控件對應源代碼中的名稱。
(2)text:該控件對應圖形界面中所顯示的標簽。
(3)font:設置text的字體。
(4)enabled:該控件是否可用。
(5)description:一個描述性的標簽,以配合按鈕上的文字。
QCommandLinkButton::QCommandLinkButton(QWidget *parent = 0)
構造一個父對象為parent的命令鏈接按鈕。QCommandLinkButton::QCommandLinkButton(const QString &text,QWidget *parent = 0)
構造一個父對象為parent、文本為text的命令鏈接按鈕。QCommandLinkButton::QCommandLinkButton(const QString &text,const QString &description,QWidget *parent = 0)
構造一個父對象為parent、文本為text和描述文本為description的命令鏈接按鈕。void QButton::clicked()[信號]
當單擊該按鈕時,發射信號。void QButton::pressed()[信號]
當按下該按鈕時,發射這個信號。void QButton::released()[信號]
當釋放該按鈕時,發射這個信號。void QButton::setText(const QString &)
設置改按鈕上顯示的文本。QString QButton::text()cosnt
返回按鈕上顯示的文本。
2.6Dialog Button Box命令鏈接按鈕
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:標準按鈕集合。
QDialogButtonBox::QDialogButtonBox(QWidget *parent = 0)
構造一個按鈕盒,父對象為parent。QDialogButtonBox::QDialogButtonBox(QT::Orientation orientation,QWidget *parent = 0)
構造一個按鈕盒,父對象為parent,排列方向為orientation,并且包含buttons。QDialogButtonBox::QDialogButtonBox(StandardButton buttons,QT::Orientation orientation = QT::Horizontal,QWidget *parent = 0)
構造一個按鈕盒,父對象為parent,排列方向為orientation。void QDialogButtonBox::accepted()[signal]
當單擊按鈕盒里的定義為AcceptRole和YesRole的按鈕時,發射信號。void QDialogButtonBox::addButton(QAbstractButton *button,ButtonRole role)
向按鈕盒里添加按鈕button,定義按鈕button的角色為role,如果role是無效的,則不添加按鈕,如果按鈕已添加,移除并在次添加為新角色。QPushButton *QDialogButtonBox::addButton(StandarButton button)
向按鈕盒中添加一個標準按鈕button,并返回標準按鈕。如果按鈕無效,不添加,返回0.QPushButton *QDialogButtonBox::addButton(const QString &text,ButtonRole role)
創建一個按鈕的文本為text,以指定角色添加到按鈕盒,并返回相應的按鈕,如果role是無效的,則不創建,返回0.void QDialogButtonBox::clear()
清空該按鈕盒里的所有按鈕。void QDialogButtonBox::clicked(QAbstractButton *button)[signal]
當單擊按鈕盒里的按鈕button時,發射這個信號。void QDialogButtonBox::helpRequested()[signal]
當單擊按鈕盒里的定義為HelpRole的按鈕時,發射這個信號。void QDialogButtonBox::rejected()[signal]
當單擊按鈕盒里定義為RejectRole和NoRole的按鈕時,發射這個信號。void QDialogButtonBox::removeButton(QAbstractButton *button)
移除按鈕盒里的按鈕Button,但是不刪除,設置它的父母為0.