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
你也可以自己手动的去设置信息,包括按钮上面的字,按钮上的图标。
调用setText来设置按钮上的文字:
button->setText("下载");
调用setIcon来设置按钮上的图标
- QIcon icon("D:/icon.png");
- button->setIcon(icon);
autoRepeat
属性autoRepeat,当这个属性为true的时候,你鼠标左键按下键盘之后,会持续性的释放pressed、released和clicked信号,直到你松下鼠标左键为止;
- 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";
- });
在按下之后,会得到如下效果:
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
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: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}");
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓