资源简介
SmartHomeV2.tar.gz
代码片段和文件信息
#include “mytbn.h“
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
extern int TOOLWIDGET_W;
extern int TOOLWIDGET_H;
extern int TOOLICON_WH;
MyTbn::MyTbn(const QString &strImage const QString &strInfo QWidget *parent) :
QToolButton(parent)m_bOver(false)m_bPress(false)m_strImage(strImage)m_strInfo(strInfo)
{
//文本颜色
QPalette objPalette = palette();
objPalette.setColor(QPalette::ButtonText QColor(220220220));
setPalette(objPalette);
//文本粗体
QFont &objFont = const_cast(font());
objFont.setWeight(QFont::Bold);
//样式
setstyleSheet(QLatin1String(“QToolButton{border:0px;}“));
//大小
setIconSize(QSize(3535));
resize(3636);
//设置文本在图标下边
setToolButtonstyle(Qt::ToolButtonTextUnderIcon);
//设置图像文本
setIcon(QPixmap(strImage));
setText(strInfo);
//连接press信号槽,表示按钮按下时
connect(thisSIGNAL(pressed())thisSLOT(slot_pressed()));
}
MyTbn::MyTbn(QWidget *parent)
{
}
MyTbn::~MyTbn()
{
}
void MyTbn::setPicName(QString pic_name)
{
this->pic_name = pic_name;
setFixedSize(QPixmap(pic_name).size());
}
void MyTbn::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
//如果按钮被按下
if(m_bPress)
{
//绘制被按下时的效果
painterinfo(30200&painter);
}
else if(m_bOver)//如果按钮没有被按下并且鼠标移到按钮上
{
//绘制鼠标移到按钮上的按钮效果
painterinfo(40100&painter);
}
//调用基类的重绘事件以显示图像文本等
QToolButton::paintEvent(event);
}
void MyTbn::enterEvent(QEvent *event)
{
SetOver(true);
}
void MyTbn::leaveEvent(QEvent *event)
{
SetOver(false);
}
void MyTbn::SetPress(bool bEnable)
{
if (bEnable!= m_bPress)
{
//设置m_bOver标志位
m_bPress = bEnable;
//更新
update();
}
}
void MyTbn::painterinfo(int nTopPartOpacity int nBottomPartOpacity QPainter *pPainter)
{
//设置画笔
QPen objPen(Qt::NoBrush1);
pPainter->setPen(objPen);
//设置渐变画刷
QLinearGradient objLinear(rect().topLeft()rect().bottomLeft());
//顶部颜色和透明度
objLinear.setColorAt(0QColor(150150150nTopPartOpacity));
//中间颜色和透明度---白色--透明度%50
objLinear.setColorAt(0.5QColor(25525525550));
//底部颜色和透明度
objLinear.setColorAt(1QColor(255255255nBottomPartOpacity));
QBrush objBrush(objLinear);
pPainter->setBrush(objBrush);
//画圆角矩形
pPainter->drawRoundedRect(rect()55);
}
void MyTbn::slot_pressed()
{
SetPress(true);
emit signal_parent(this);
}
void MyTbn::SetOver(bool bEnable)
{
if (bEnable != m_bOver)
{
//设置m_bOver标志位
m_bOver = bEnable;
//更新
update();
}
}
- 上一篇:PESQ MOS分计算
- 下一篇:WinArpAttacker V3.5汉化版
相关资源
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
- 联想启天M4350 BIOS升级文件
评论
共有 条评论