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()));
}
运行效果:
推荐阅读
-
详解iOS应用中自定义UIBarButtonItem导航按钮的创建方法
-
详解iOS应用中自定义UIBarButtonItem导航按钮的创建方法
-
29.QT-自定义窗口拖动、自定义QToolButton/QPushButton开关按钮、界面阴影
-
Vue笔记--通过自定义指令实现按钮操作权限
-
OpenGL学习笔记(七):创建第一个Qt5.9.3 OpenGL工程模版(与平台无关)
-
Qt学习笔记(自定义控件)
-
Spring框架学习笔记(4)——SSM整合以及创建Maven自定义模版骨架
-
29.QT-自定义窗口拖动、自定义QToolButton/QPushButton开关按钮、界面阴影
-
Qt学习笔记(1) — 深入了解Hello World的创建过程
-
Qt使用笔记——自定义信号槽