QPushButton类是Qt中用于创建按钮的控件类,使用频率非常高,它继承自QAbstractButton类。
QPushButton 类提供了 3 个构造函数,分别是:
QPushButton(QWidget *parent = Q_NULLPTR)
QPushButton(const QString &text, QWidget *parent = Q_NULLPTR)
QPushButton(const QIcon &icon, const QString &text, QWidget *parent = Q_NULLPTR)
parent 参数用于指定父窗口;text 参数用于设置按钮上要显示的文字;icon 参数用于设置按钮上要显示的图标。
QPushButton常用属性
属 性 | 含 义 |
---|---|
text | 保存按钮上要显示的文字。 该属性的值可以通过 text() 方法获取,也可以通过 setText(const QString &text) 方法修改。 |
icon | 保存按钮左侧要显示的图标。 该属性的值可以通过 icon() 方法获取,也可以通过 setIcon(const QIcon &icon) 方法修改。 |
iconsize | 保存按钮左侧图标的尺寸。 该属性的值可以通过 iconSize() 方法获取,也可以通过 setIconSize(const QSize &size) 方法修改。 |
size | 保存按钮的尺寸。 该属性的值可以通过 size() 方法获取,也可以通过 resize(int w, int h) 或者 resize(const QSize &) 方法修改。 |
font | 保存按钮上文字的字体和大小。 该属性的值可以通过 font() 方法获取,也可以通过 setFont(const QFont &) 方法修改。 |
flat | 初始状态下,按钮是否显示边框。flat 属性的默认值为 false,表示按钮带有边框。 该属性的值可以通过 isFlat() 方法获取,也可以通过 setFlat(bool) 方法修改。 |
enabled | 指定按钮是否可以被按下。 该属性的默认值为 true,表示按钮可以被按下,即按钮处于启用状态。当该属性的值为 false 时,按钮将不能被点击,按钮处于禁用状态。 该属性的值可以通过 isEnabled() 方法获取,也可以通过 setEnabled(bool) 方法进行修改。 |
autoDefault | 当用户按下 Enter 回车键时,是否触发点击按钮的事件。 当按钮的父窗口为 QDialog 窗口时,该属性的值为 true;其它情况下,该属性的默认值为 false。 该属性的值可以通过 autoFault() 方法获取,也可以通过 setAutoFault(bool) 方法修改。 |
QPushButton常用方法
方 法 | 功 能 |
---|---|
move(int x, int y) | 手动指定按钮位于父窗口中的位置。 |
setStyleSheet(const QString &styleSheet) | 自定义按钮的样式,包括按钮上文字或图片的显示效果,按钮的形状等等。 |
setGeometry(int x, int y, int w, int h) | 同时指定按钮的尺寸和位置。 |
adjustSize() | 根据按钮上要显示的内容,自动调整按钮的大小。 |
setDisabled(bool disable) | 指定按钮是否可以被按下。当 disable 值为 true 时,表示按钮不能被按下,即禁用按钮的功能。 |
QPushButton按钮的信号和槽
信号函数 | 功 能 |
---|---|
clicked() clicked(bool checked = false) | 用户点击按钮并释放(或者按下按钮对应的快捷键)后,触发此信号。 |
pressed() | 用户按下按钮时会触发此信号。 |
released() | 用户松开按钮时会触发此信号。 |
槽函数 | 功 能 |
click() | 单击指定的按钮。 |
setIconSize() | 重新设置按钮上图片的尺寸。 |
hide() | 隐藏按钮控件。 |
setMenu(QMenu *menu) | 弹出与按钮关联的菜单。 |
示例
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton * btn2 = new QPushButton(QStringLiteral("第一个按钮"),this);
//移动btn2
btn2->move(250,200);
resize(600,400);
//设置窗口标题
setWindowTitle(QStringLiteral("第一个窗口"));
}
MainWindow::~MainWindow()
{
delete ui;
}