zoukankan      html  css  js  c++  java
  • 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,[=](){
           //点击自定义按钮的时候这个代码块的代码会执行。
        });

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

      

  • 相关阅读:
    《梦段代码》阅读笔记03
    用户场景
    冲刺!
    冲刺!
    周总结8
    冲刺!
    冲刺!
    PMS权限管理和鉴权过程
    PMS构造函数以及apk如何扫描
    PMS的学习之旅
  • 原文地址:https://www.cnblogs.com/tony-yang-flutter/p/15767759.html
Copyright © 2011-2022 走看看