QAbstractButton 类是所有按钮控件类的基类,包含很多通用的按钮功能。
QPushButton继承自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 参数用于设置按钮上要显示的图标。
其他常用方法:
void setText(const QString &text) | 设置显示的文字 |
void setIcon(const QIcon &icon) | 设置图标 |
void setShortcut(const QKeySequence &key) | 设置快捷键 |
void setCheckable(bool) | 设置是否能够选中 |
void setChecked(bool) | 设置是否选中 |
void setFont(const QFont &) | 设置字体 |
void setEnabled(bool) | 设置是否能按下 |
void setAutoDefault(bool) | 当用户按下 Enter 回车键时,是否触发点击按钮的事件。 |
void setAutoExclusive(bool) | 此属性保存是否启用了自动独占 |
常用信号:
有鼠标点击、按下、抬起信号。
-
- void clicked(bool checked = false)
- void pressed()
- void released()
3.1设置文字、图片。
- QFont font;
- font.setBold(true); //设置粗体
- ui->pushButton->setFont(font);
-
- QPixmap pixmap("test.png");
- QIcon icon(pixmap);
- ui->pushButton_2->setIcon(icon);
设置文字和图片一起出现
可以看到任何时候只有一个高亮。
- ui->pushButton->setCheckable(true);
- ui->pushButton_2->setCheckable(true);
- ui->pushButton_3->setCheckable(true);
- ui->pushButton_4->setCheckable(true);
-
- ui->pushButton->setAutoExclusive(true);
- ui->pushButton_2->setAutoExclusive(true);
- ui->pushButton_3->setAutoExclusive(true);
- ui->pushButton_4->setAutoExclusive(true);
3.3按钮三态设置
按钮有三种状态,鼠标 悬停、按下、默认。
- QString a1 = "\
- QPushButton#pushButton{\
- border-image: url(:/1.png);\
- }\
- QPushButton#pushButton:hover{\
- border-image: url(:/2.png);\
- }"\
- "QPushButton#pushButton:pressed{\
- border-image: url(:/3.png);\
- }";
-
-
- ui->pushButton->setStyleSheet(a1);
3.4其他样式表设置
设置圆角,边框,字体颜色,字体大小等属性。
- QString a2 = "QPushButton {\
- border: 2px solid #8f8f91;\
- border-radius: 6px;\
- background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\
- stop: 0 #f6f7fa, stop: 1 #dadbde);\
- font-size: 24px;\
- font-family: Microsoft YaHei;\
- color: #ff0000;\
- min-width: 80px;\
- }";
-
-
- ui->pushButton->setStyleSheet(a2);
3.5QSS样式表参考