Qt 创建一个自定义按钮
一、概述
案例:编写一个自定义按钮。要求:1.给按钮添加自定义背景 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,[=](){ //点击自定义按钮的时候这个代码块的代码会执行。 });
案例如下图所示:一个圆润的开始按钮
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2016-01-05 android
2014-01-05 使用Java线程并发库实现两个线程交替打印的线程题
2013-01-05 Android 百度地图 在4.0以上系统上运行相当卡的问题