欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QT笔记-创建自定义按钮

程序员文章站 2022-05-22 19:55:16
...

QT笔记-创建自定义按钮

自定义按钮:隐藏图片空白区域,显示图片内的图案

注意事项

1.创建不规则按钮需添加新的.h和.cpp文件;
2.鼠标右键boke_03->添加新文件->c+±>c++ class ->命名选择widget类…下一步
3.需添加资源文件.prc
4.鼠标右键boke_03->添加新文件->QT->QT Resouruce file->下一步…到前缀名是必须要有一个符号/

代码示例:

.pro:无需添加代码

原先.h:无需添加代码

原先.cpp:

#include "boke_03.h"
#include "ui_boke_03.h"
//需添加anniu.h
#include<anniu.h>

boke_03::boke_03(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::boke_03)
{
    ui->setupUi(this);

    //创建不规则按钮需添加新的.h和.cpp文件;
    //鼠标右键boke_03->添加新文件->c++->c++ class ->命名选择widget类...下一步
    //需添加资源文件.prc
    //鼠标右键boke_02->添加新文件->QT->QT Resouruce file->下一步......到前缀名是必须要有一个符号/

    //创建按钮
    anniu * diqiu = new anniu(":/res/earth.png");
    //设置按钮显示窗口
    diqiu->setParent(this);
    //将按钮移动到(屏幕宽度减去自身宽度就是宽度了*需要放的百分比,高度*一定的高度)
    diqiu->move((this->width()*0.5 - diqiu->width()*0.5)*0.5,this->height()*0.2);
}

boke_03::~boke_03()
{
    delete ui;
}

新建.h:`

#ifndef ANNIU_H
#define ANNIU_H

//修改头文件widget为QPushButton
#include <QPushButton>
//需添加头文件
#include<QDebug>

//修改widget为QPushButton
class anniu : public QPushButton
{
    Q_OBJECT
public:
    //不需要注释掉
    //explicit anniu(QWidget *parent = 0);

    //说明函数
    anniu(QString normalImg,QString pressImg ="");

    //系统函数
    QString normalImgxs;
    QString pressedImgax;

signals:

public slots:
};

#endif // ANNIU_H

新建.cpp

#include "anniu.h"

//不需要注释掉
//anniu::anniu(QWidget *parent) : QWidget(parent)
//{

//}

//调用声明函数
anniu::anniu(QString normalImg,QString pressImg )
{
    //将系统函数赋予给自定义函数同样的功能
    this->normalImgxs = normalImg;
    this->pressedImgax = pressImg;
    //加载图片
    QPixmap tupian;
    //BOOL有返回值    封装底层按钮图片
    bool ret = tupian.load(this->normalImgxs);
    //判定图片加载是否成功
    if(!ret)
    {
    //图片加载失败,返回那个地址加载失败
    QString sb = QString("%1图片加载失败").arg(this->normalImgxs);
    qDebug() << sb;
    //加载失败后无需执行下一步
    return;
    }
    //设置图片大小:设置图片方框
    this->setFixedSize(tupian.width(),tupian.height());
    //设置不规则图片样式:没有图片的位置设置为透明
    this->setStyleSheet("QPushButton{border:0px;}");
    //设置图片:将图片显示上去
    this->setIcon(tupian);
    //设置图标大小
    this->setIconSize(QSize(tupian.width(),tupian.height()));
}

运行效果:

QT笔记-创建自定义按钮

相关标签: QT笔记 qt