Qt入门-QPushButton
2012-07-19 16:17
218 查看
QPushButton是一个按键类。
构造函数:
常用属性和方法:
(1) QString text () const:返回按键上的文字;
(2) void setText ( const QString & text ):设置按键上的文字;
(3) bool autoDefault() const;:autoDefault属性,它会影响按键的外观;
(4) void setAutoDefault(bool);:设置autoDefault属性;
(5) bool isDefault() const;:default属性,仅在Dialog中此属性有效;
(6) void setDefault(bool);:设置default属性;
(7) void setFlat(bool);:设置FLAT属性
(8) bool isFlat() const;:设置按键的外观是否有突起。
示例:
pushBtn.h
main.c
编译运行,界面如下:
![](http://my.csdn.net/uploads/201207/19/1342686337_3626.JPG)
------------------分割线-----------------
QPushButton类有两个属性:default和autodefault属性。
(1) default属性表示当在对话框中时有“Enter”键按下时执行此按键的click()事件。它的默认值是false;
(2)autoDefault属性设置为true时会影响按键的外观(略微突出显大),它的默认值是true。
default和autoDefault区分
当在Dialog中使用时default和autoDefault属性时,不外乎下面几种情况:
(1)当前所有按键的这两个属性值均为false,则按下ENTER时无响应;
(2)若当前焦点在一个按键,并且这个按键的autoDefault为true时,则不管是否有其它按键具有default属性,若有ENTER按下时响应它。
(3)当前所有按键dufault属性为false,并且有若干按键autoDefault属性为true,当ENTER按下时响应下第一个autoDefault属性为true的按键;
(4)当前所有按键的autoDefault属性为flase时,有一个按键的dufault属性为true,当按下ENTER时响应这个按键;
(5)当所有按键的autoDefault属性为true时,有一个按键的dufault属性为true,当ENTER按下时:若当前焦点在按键按键则响应这个按键;若焦点不在任何一个按键,则响应default属性为true的按键。
测试代码:
pushBtn.h 代码同上。
main.cpp
class Q_GUI_EXPORT QPushButton : public QAbstractButton { Q_OBJECT
构造函数:
QPushButton ( QWidget * parent = 0 ) QPushButton ( const QString & text, QWidget * parent = 0 ) QPushButton ( const QIcon & icon, const QString & text, QWidget * parent = 0 )
常用属性和方法:
(1) QString text () const:返回按键上的文字;
(2) void setText ( const QString & text ):设置按键上的文字;
(3) bool autoDefault() const;:autoDefault属性,它会影响按键的外观;
(4) void setAutoDefault(bool);:设置autoDefault属性;
(5) bool isDefault() const;:default属性,仅在Dialog中此属性有效;
(6) void setDefault(bool);:设置default属性;
(7) void setFlat(bool);:设置FLAT属性
(8) bool isFlat() const;:设置按键的外观是否有突起。
示例:
pushBtn.h
#ifndef __PUSHBTN_H__ #define __PUSHBTN_H__ #include <QPushButton> #include <QMessageBox> class PushBtn : public QPushButton { Q_OBJECT public: PushBtn(QWidget *parent = NULL):QPushButton(parent) { connect(this, SIGNAL(clicked()), this, SLOT(OnClicked())); } private slots: void OnClicked() { QString str; str = "You press " + this->text(); QMessageBox::information(this, tr("Information"), str); } }; #endif
main.c
#include <QApplication> #include <QDialog> #include <QRect> #include <QFont> #include <QPushButton> #include "PushBtn.h" #include <QLineEdit> int main(int argc, char *argv[]) { QApplication a(argc, argv); QDialog *mainWindow = new QDialog; PushBtn *btn1 = new PushBtn(mainWindow); btn1->setText("Button1"); btn1->setGeometry(QRect(20, 40, 80, 40)); PushBtn *btn2 = new PushBtn(mainWindow); btn2->setText("Button2"); btn2->setGeometry(QRect(120, 40, 80, 40)); PushBtn *btn_ok = new PushBtn(mainWindow); btn_ok->setText("OK"); btn_ok->setGeometry(QRect(100, 100, 80, 40)); mainWindow->resize(300, 150); mainWindow->setWindowTitle("Qt Test"); mainWindow->show(); return a.exec(); }
编译运行,界面如下:
------------------分割线-----------------
QPushButton类有两个属性:default和autodefault属性。
(1) default属性表示当在对话框中时有“Enter”键按下时执行此按键的click()事件。它的默认值是false;
(2)autoDefault属性设置为true时会影响按键的外观(略微突出显大),它的默认值是true。
default和autoDefault区分
当在Dialog中使用时default和autoDefault属性时,不外乎下面几种情况:
(1)当前所有按键的这两个属性值均为false,则按下ENTER时无响应;
(2)若当前焦点在一个按键,并且这个按键的autoDefault为true时,则不管是否有其它按键具有default属性,若有ENTER按下时响应它。
(3)当前所有按键dufault属性为false,并且有若干按键autoDefault属性为true,当ENTER按下时响应下第一个autoDefault属性为true的按键;
(4)当前所有按键的autoDefault属性为flase时,有一个按键的dufault属性为true,当按下ENTER时响应这个按键;
(5)当所有按键的autoDefault属性为true时,有一个按键的dufault属性为true,当ENTER按下时:若当前焦点在按键按键则响应这个按键;若焦点不在任何一个按键,则响应default属性为true的按键。
测试代码:
pushBtn.h 代码同上。
main.cpp
#include <QApplication> #include <QDialog> #include <QRect> #include <QFont> #include <QPushButton> #include "PushBtn.h" #include <QLineEdit> int main(int argc, char *argv[]) { QApplication a(argc, argv); QDialog *mainWindow = new QDialog; PushBtn *btn1 = new PushBtn(mainWindow); btn1->setText("Button1"); btn1->setGeometry(QRect(20, 40, 80, 40)); PushBtn *btn2 = new PushBtn(mainWindow); btn2->setText("Button2"); btn2->setGeometry(QRect(120, 40, 80, 40)); PushBtn *btn_ok = new PushBtn(mainWindow); btn_ok->setText("OK"); btn_ok->setGeometry(QRect(100, 100, 80, 40)); btn_ok->setDefault(true); QLineEdit *lineEdit = new QLineEdit(mainWindow); lineEdit->setGeometry(QRect(5, 5, 100, 20)); mainWindow->resize(300, 150); mainWindow->setWindowTitle("Qt Test"); mainWindow->show(); return a.exec(); }
相关文章推荐
- Qt入门-QPushButton
- [转]Qt入门之QPushButton
- 【QT】QT从零入门教程(八):QT常用控件 [QLabel、QPushButton、QLineEdit、QTextEdit]
- QT5入门之27 -QPushButton
- Qt入门-QPushButton
- Qt入门-QPushButton
- QT 快速入门(一)
- qt入门开发人员一个日志函数
- Linux下的Qt入门
- [Qt入门篇]7 Qt的属性系统——NOTIFY和RESET
- Qt入门(9)——Qt中的线程支持
- Qt入门(19)——自定义窗口部件
- Qt入门学习——Qt 5 帮助文档的使用
- Qt入门-控制台应用程序Hello World
- 近段时间,经常翻看QT的一些Demo,我觉得可以大概写个QT入门系列的小文章
- Qt 常用类(14)—— QPushButton
- Qt入门——选择路径打开文件并读取文件
- QT5入门之10 - 启动程序失败,路径或者权限错误
- topic3:Qt入门之常用qt控件认知之QLabel
- Qt 5入门指南之Qt Quick编程示例