[Qt 教程之Widgets模块] —— QPushButton普通按钮控件

本文详细介绍了Qt库中的QPushButton组件,包括其创建、信号、使用方法和样式设置。 QPushButton是常见的控件,通过信号槽机制响应用户操作,如pressed()、released()和clicked()。此外,还讲解了如何设置按钮文字、大小和自定义样式,例如利用setStyleSheet()函数改变背景色、字体和圆角等。
摘要由CSDN通过智能技术生成

Qt系列教程总目录

QPushButton按钮,是Qt常用的控件之一,提供普通的按钮功能。

通过信号槽机制接收触发信号并执行对应动作。

一、创建QPushButton

它有三个构造函数:

// 空对象
QPushButton(QWidget *parent = nullptr);
// 指定QPushButton显示的文字
QPushButton(const QString &text, QWidget *parent = nullptr);
// 指定QPushButton背景图片和显示的文字
QPushButton(const QIcon& icon, const QString &text, QWidget *parent = nullptr);

最常用的创建方法为:QPushButton(QWidget *parent = nullptr); 并且把它的父对象指定为它所在的窗口对象。

二、信号

它通过信号来接收特定的操作,信号包括:

信号操作描述
void pressed();按下按钮按钮被按下会发出此信号
void released();释放按钮按钮被释放(松开)会发出此信号
void clicked(bool checked = false);点击按钮按钮被点击(即按下后再释放)会发出此信号
void toggled(bool checked);按钮状态被切换按钮状态被切换时会发出此信号

这些信号在QAbstractButton中定义,也就是说继承于QAbstractButton的按钮类都可以使用这些信号。

由于QPushButton使用最多的操作是点击触发某个行为,所以它常用的信号为pressedreleased, 当然也可以使用其他信号实现一些特殊功能。

三、使用

最常用的点击触发某个行为:

创建一个widget空窗口项目,

首先,切换到ui设计界面,拖动添加一个Push Button按钮,

在这里插入图片描述

可以在右侧修改按钮对象的名称,也可以使用默认的pushButton

然后,回到widget.cpp文件,连接信号与槽,并实现槽函数(点击按钮要实现的动作)。

在这里插入图片描述

其中,connect(ui->pushButton, &QPushButton::clicked, this, &Widget::btnClicked);用于连接按钮信号与其槽函数(关于connect见Qt 学习(四) —— 信号和槽

void Widget::btnClicked()是其槽函数,按键clicked信号触发的动作实现在这个函数里。

这里点击按钮后会在QtCreatorApplication OutPut窗口打印button is clicked,如下图:

在这里插入图片描述

以上是pushbutton按钮的使用方法,可以把信号换成pressedreleased试一下。

四、按钮样式

4.1 按钮文字

通常我们通过按钮上的文字说明按钮的功能,可以使用setText()函数设置按钮文字。

ui->pushButton->setText("按钮");

如果想获取一个按钮的文字,可以使用text()函数:

QString btnText = ui->pushButton->text();

4.2 按钮大小

使用setGeometry函数可以设置按钮的大小及位置,setGeometry接收一个QRect矩形对象,用以指定按钮大小及位置,如下:

pushButton->setGeometry(QRect(140, 140, 231, 71));

其中前两个参数指定位置(x, y),后两个参数指定大小(height, width)。

在这里插入图片描述

另外还可以使用resize函数单独设置按钮的大小:

ui->pushButton->resize(80, 80);

4.3 其他样式

其他样式主要使用void setStyleSheet(const QString& styleSheet); 函数设置样式表。

该函数传入QString类型的参数,是遵循 qss 语法的编码字符串。

qss 语法和 css 语法基本相同。

比如基本常用的设置按钮的背景色、按钮字体、矩形按钮圆角等。

ui->pushButton->setStyleSheet("QPushButton {"
                              "background-color: green;" // 按钮背景色
                              "font: bold 20px;"	// 按钮字体
                              "border-width: 1px;"	// 按钮边框线宽
                              "border-radius: 16px;" // 按钮边框圆角半径
                              "color: white;" 	// 按钮文字颜色
                              "}");

效果如下:

在这里插入图片描述

合理配合大小与圆角的设置,还可以画出圆形按钮:

ui->pushButton->resize(80, 80);
ui->pushButton->setStyleSheet("QPushButton {"
                              "background-color: green;" // 按钮背景色
                              "font: bold 20px;"	// 按钮字体
                              "border-width: 1px;"	// 按钮边框线宽
                              "border-radius: 40px;" // 按钮边框圆角半径
                              "color: white;"      // 按钮文字颜色
                              "}");

效果如下:

在这里插入图片描述

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万俟淋曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值