[Qt 基础-01] QPushButton

QPushButton

简介#

QPushButton是一个很常用的一个按钮控件,主要用于创建一个可按压的按键。它显示了一 个文本和一个图标。另外,你也可以在创建时,指定一个快捷键。

基本用法#

1. 创建#

QPushButton主要有两种创建方法,一种是直接在QtCreator上进行拖拽添加,另外一种是用代码创建。

用代码创建如下:

QPushButton *button = new QPushButton("Download", this);

你也可以在创建的时候这样写:

QPushButton *button = new QPushButton("&Download", this);

这样,你就指定了一个快捷键,用于按下这个按钮,具体的规则为:
在"&"后面的那个字母就是你的快捷键,而且快捷键的组合方式为Alt + D。所以如果你是这样写

QPushButton *button = new QPushButton("D&ownload", this);

你的快捷键就是:Alt + o

2. 设置信息#

你也可以自己手动的去设置信息,包括按钮上面的字,按钮上的图标。
调用setText来设置按钮上的文字:

button->setText("下载");

调用setIcon来设置按钮上的图标

QIcon icon("D:/icon.png");
button->setIcon(icon);

autoRepeat

属性autoRepeat,当这个属性为true的时候,你鼠标左键按下键盘之后,会持续性的释放pressedreleasedclicked信号,直到你松下鼠标左键为止;

    ui->pushButton_3->setAutoRepeat(true);
    connect(ui->pushButton_3, &QPushButton::pressed, [] () {
        qDebug() << "pressed";
    });

    connect(ui->pushButton_3, &QPushButton::clicked, [] () {
        qDebug() << "clicked";
    });

    connect(ui->pushButton_3, &QPushButton::released, [] () {
        qDebug() << "released";
    });

在按下之后,会得到如下效果:
在这里插入图片描述

autoRepeatDelay

这个属性用来设置前面的autoRepeat这个在自动重复前的延迟,也就是说在按下之后,等待这个设置的延迟之后,才会开启自动重复。

ui->pushButton_3->setAutoRepeatDelay(2000);

效果如下:
在这里插入图片描述

autoRepeatInterval

这个属性是设置每个重复信号发射之间的间隔,

ui->pushButton_3->setAutoRepeatInterval(2000);

效果如下:
在这里插入图片描述

信号的连接#

主要的信号主要是鼠标点击按钮时,发射的信号,主要是click信号,你可以连接这两个信号,来实现自己的功能。

connect(button, SIGNAL(click()), this, SLOT(doSomething()));

样式表设计#

我们可以设计样式表,来达到美化按钮的目的。

QPushButton
{
    background-color: rgb(111, 221, 255);
    font: 8px "Microsoft YaHei";
    color: black;
}

另外如果要设置图片背景给QPushButton,请移步Qt Qss 设置QPushButton图标和背景

同时你也可以根据按钮的伪状态来设置对应的样式表:

/*按下的状态*/
QPushButton:pressed
{
	/*要设计的样式*/
}

/*悬浮的状态*/
QPushButton:hover
{
	/*要设计的样式*/
}

最终的代码和效果如下:

QPushButton *button = new QPushButton("D&ownload", this);

QIcon icon("D:/icon.png");
button->setIcon(icon);

connect(button, SIGNAL(click()), [] () {
    QMessageBox::information(nullptr, "提示", "按钮按下");
});

button->setStyleSheet("QPushButton{\n    background-color: rgb(111, 221, 255);\n    font: 14px \"Microsoft YaHei\";\n    color: black;\n}");

在这里插入图片描述

作者:师从名剑山

出处:https://www.cnblogs.com/codegb/p/16653443.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   师从名剑山  阅读(360)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示