随笔 - 632  文章 - 17  评论 - 54  阅读 - 93万

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,[=](){
       //点击自定义按钮的时候这个代码块的代码会执行。
    });
复制代码

 

  案例如下图所示:一个圆润的开始按钮

  

 

posted on   飘杨......  阅读(2043)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
历史上的今天:
2016-01-05 android
2014-01-05 使用Java线程并发库实现两个线程交替打印的线程题
2013-01-05 Android 百度地图 在4.0以上系统上运行相当卡的问题
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示