您的位置:首页 > 编程语言 > Qt开发

Qt入门-QPushButton

2014-05-12 07:48 537 查看
QPushButton是一个按键类。

[cpp] view
plaincopy

class Q_GUI_EXPORT QPushButton : public QAbstractButton

{

Q_OBJECT

构造函数:

[cpp] view
plaincopy

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

[cpp] view
plaincopy

#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

[cpp] view
plaincopy

#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的按键。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: