首页 > 其他分享 >[QT基础系列]按钮QPushButton

[QT基础系列]按钮QPushButton

时间:2024-10-25 12:51:27浏览次数:8  
标签:QT void btnStart 样式表 QPushButton 按钮 ui 图标

按钮QPushButton

属性和方法、案例

文本

可以获取和设置按钮上显示的文本

// 获取和设置按钮的文本
QString text() const
void setText(const QString &text)

图标

可以获取和设置按钮上显示的图标

// 获取和设置按钮的图标
QIcon icon() const
void setIcon(const QIcon &icon)

样式表

样式表可以设置包括文本颜色、背景色、边框、字体等很多样式

// 获取和设置样式表
// 这是继承自QWidget类的属性和方法
// 只要继承自QWidget类的控件,都有该属性
QString styleSheet() const
void setStyleSheet(const QString &styleSheet)

样式表既可以在 Qt 设计师右侧的属性窗口中修改,也可以在代码中动态地获取和修改

信号

按钮在按下和抬起的过程中,会发射多个信号。

// 当按钮被点击(按下并抬起)时,发送该信号,其中带有一个默认参数
// 对于QPushButton 通常不需要传递这个默认参数
// 对于可选中/取消选中的按钮,比如复选框QCheckBox、单选框QRadioButton 可以通过该参数,获取其是否选中
void clicked(bool checked = false);

// 当按钮被按下时,发送该信号
void pressed();

// 当按钮被抬起时,发送该信号
void released();

案例

该案例演示,如何设置按钮的文本和图标,以及信号的使用

在这里插入图片描述

添加样式表(设置按钮渐变色)

在右侧的属性窗口中,或者在按钮上右键->【改变样式表…】,都可以打开编辑样式表的对话框

设置了按钮的字体颜色和背景渐变:
在这里插入图片描述

代码

// 1、设置文本和图标
void Widget::on_btnStart_clicked()
{
    QString s = ui->btnStart->text();

    if(s == "启动") {
        // 设置文本和字体
        ui->btnStart->setText("停止");
        ui->btnStart->setFont(QFont("黑体", 16));

        // 设置图标和图标大小
        ui->btnStart->setIcon(QIcon(":/icon/stop.ico"));
        ui->btnStart->setIconSize(QSize(48, 48));
    } else {
        ui->btnStart->setText("启动");
        ui->btnStart->setFont(QFont("黑体", 12));

        ui->btnStart->setIcon(QIcon(":/icon/start.ico"));
        ui->btnStart->setIconSize(QSize(32, 32));
    }
}

// 2、使能禁能
void Widget::on_btnConnect_clicked()
{
    QString s = ui->btnConnect->text();
    if(s == "连接") {
        ui->btnConnect->setText("断开连接");
        ui->btnSend->setEnabled(true);
    } else {
        ui->btnConnect->setText("连接");
        ui->btnSend->setEnabled(false);
    }
}

// 3、信号演示
// 按钮抬起时,会发射clicked信号
void Widget::on_btnSignal_clicked()
{
    qDebug() << "clicked...";
}

// 按钮按下时,会发射pressed信号
void Widget::on_btnSignal_pressed()
{
    qDebug() << "pressed...";
}

// 按钮抬起时,会发射released信号
void Widget::on_btnSignal_released()
{
    qDebug() << "released...";
}

标签:QT,void,btnStart,样式表,QPushButton,按钮,ui,图标
From: https://blog.csdn.net/m0_67194883/article/details/143173370

相关文章

  • [QT基础系列]窗口QWidget
    QWidget所有窗口类的基类Qt中有3个窗口的基类:QWidget、QMainWindow、QDialog在创建Qt工程时,会让我们选择继承自哪一个窗口类其中,QMainWindow、QDialog都是继承自QWidge所有控件类的基类Qt中的控件类(按钮、输入框、单选框等)也属于窗口类它们的基类也是QWid......
  • [QT基础系列]标签QLabel
    标签QLabelQLabel是Qt中的标签类,通常用于显示提示性的文本,也可以显示图像文本可以获取和设置按钮上显示的文本//获取和设置显示的文本QStringtext()const;voidsetText(constQString&text);对齐方式用于设置标签中的内容在水平和垂直两个方向上的对齐方式......
  • QtCreator开发工具
    视图及分栏项目视图文件系统视图书签视图ctrl+m添加书签编辑区打开文档列表类列表分栏常用快捷键使用键盘模拟鼠标操作代码编辑Ctrl+[Shift]+Enter在当前行的下方[上方]插入空白行Ctrl+l[;]代码对齐[格式化]Shift+Delete剪切当前行,可以当做删除用Ctrl+/......
  • 实现Qtextedit控件大小改变时候希望不重新绘制
    实现Qtextedit控件大小改变时候希望不重新绘制4.备选方案5.完整示例6.总结要在QTextEdit控件大小改变时防止其重新绘制,可以通过创建一个自定义的QTextEdit子类,并重载相关事件来控制绘制行为。以下是实现这一目标的详细步骤和示例代码:创建自定义的QTextEdit......
  • Vue中使用el-upload实现文件上传时控制提交按钮状态的最佳实践
    在Web应用开发中,文件上传是一个常见的需求。在使用Vue框架和ElementUI库时,我们经常使用el-upload组件来处理文件上传。但是,如何在上传过程中控制提交按钮的可用状态,以避免在上传未完成时误触提交操作,是一个值得探讨的问题。本文将介绍一种简单有效的方法来解决这个问题。问......
  • 如何在QT5+MinGW环境中编译使用Marble开发地图地球仪
    Marble它是一个虚拟地球仪和地图应用程序,支持多种平台。Marble提供2D和3D的地图视图,能够展示各种地理信息,像卫星图、街道图、气象图等。它还支持自定义插件、路线规划、离线地图等功能,适合地理信息系统(GIS)和教育用途。Marble有多种使用场景,可以集成到Qt应用中。你......
  • Qt 进程保活(开源,国产环境)QTableWidget列表
    效果图第一步设计器拖拽一个QTableWidget和三个QPushButton,布局一下第二步上码1.mainwindow.h代码如下(示例):#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>#include<QDebug>#include<QPushButton>#include<QLabel>#include<QFileInfo......
  • qt5multimedia播放rtsp延迟高
    Qt5Multimedia在Liunux平台已实现对Gstreamer的支持,近期在RK3588平台,使用Qt5Multimedia播放RTSP流时,遇到延迟高问题(3s左右),查看API,Qt5Multimedia无法向Gstreamer传递参数。解决办法:重新编译qt5multimedia;修改qt5multimedia/src/gsttools/qgstreamerplayersession.cppGstE......
  • Qt/C++路径轨迹回放/回放每个点信号/回放结束信号/拿到移动的坐标点经纬度
    一、前言说明在使用百度地图的路书功能中,并没有提供移动的信号以及移动结束的信号,但是很多时候都期望拿到移动的哪里了以及移动结束的信号,以便做出对应的处理,比如结束后需要触发一些对应的操作。经过搜索发现很多人都有这个需求,需要在js文件中加上一点代码才行,也就是在start开始......
  • 【模板】FHQtreap
    mt19937rnd(time(0));structFHQtreap{ intlc[N],rc[N],val[N],key[N],siz[N],pool,root; intcreate(intx){ intp=++pool; val[p]=x; siz[p]=1; key[p]=rnd(); lc[p]=rc[p]=0; returnp; } voidupdate(intp){ if(!p)return; siz[p]=siz[lc[p]]+si......