Qt创建一个自定义按钮
Qt 一个 创建 自定义 按钮
2023-09-14 09:05:26 时间
1、概述
案例:编写一个自定义按钮。要求:1.给按钮添加自定义背景 2.监听按钮点击事件
2、代码案例
1.创建一个类让其继承QWidget,点击下一步下一步最后完成
2.打开MyPushButton,让其继承QPushButton。如下所示:
MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{
}
3.重载其构造函数,让其传入按钮背景图片的路径。可设按钮的固定尺寸大小、icon、样式等。设置完成后这个自定义按钮就完成了。
MyPushButton::MyPushButton(QString normalImg,QString pressImg){
normalImgPath = normalImg;
pressedImgPath = pressImg;
QPixmap pixmap;
//判断是否能正常加载图片,若不能则提示用户
bool ret = pixmap.load(normalImgPath);
if(!ret){
qDebug() << normalImg <<"加载图片失败" ;
}
//设置图片固定尺寸
this->setFixedSize(pixmap.width(),pixmap.height());
//设置不规则图片的样式表
this->setStyleSheet("QPushButton{border:0px}");
//设置图标
this->setIcon(pixmap);
//设置图标大小
this->setIconSize(QSize(pixmap.width(),pixmap.height()));
}
4.新建一个window类进行测试,在测试类的构造方法中加入如下的代码,并使用信号和槽函数监听按钮的点击事件
//创建开始按钮
MyPushButton *startBtn = new MyPushButton(":/res/MenuSceneStartButton.png");
startBtn->setParent(this);
startBtn->move(this->width()*0.5-startBtn->width()*0.5,this->height()*0.7);
//连接信号槽,监听开始按钮点击
connect(startBtn,&MyPushButton::clicked,[=](){
//点击自定义按钮的时候这个代码块的代码会执行。
});
案例如下图所示:一个圆润的开始按钮
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
相关文章
- Qt之QTableView显示富文本
- Qt之运行一个实例进程
- Qt-QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connect...
- 【C/C++学院】0817-递归汉诺塔 双层递归 /CPP结构体 /面向过程与面向对象的编程模式/类的常识共用体实现一个类的特征/QT应用于类以及类的常识
- Qt视频监控系统一个诡异问题的解决思路(做梦都想不到)
- 用C++的QT写一个能够实现TCP和UDP通信的网络调试助手代码
- Qt新建一个继承自QThread的类
- Qt 如何新建一个弹出式窗口
- Qt项目MVC架构
- C++QT开发——多线程
- C++QT开发——GraphicsView(图形视图)
- 一个基于QT的环形缓存的C++实现。
- Qt 事件传递顺序
- 【Qt OpenGL教程】01:创建一个OpenGL窗口
- 处理字符串,每两个字符加入一个空格 C语言 Qt
- QT信号槽详解
- 我写的一个 Qt 显示图片的控件
- 【夸QT十一】外来物品:通用脚本帮助Web运行基础Linux命令
- QT 资源文件的添加
- QT案例实战1 - 从零开始编写一个OCR工具软件 (9) 使用QTcpServer建立一个Tcp服务端
- QT案例实战1 - 从零开始编写一个OCR工具软件 (6) 关于QThread线程的使用
- QT案例实战1 - 从零开始编写一个OCR工具软件 (4)引入tesseract
- QT案例实战1 - 从零开始编写一个OCR工具软件 (3)创建项目