资源简介
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汉化版
相关资源
- mini-KMS_Activator_v1.2_Office2010_VL_ENG.rar
- 茄子双胆软件.rar
- anyconnect-win-2.4.1012-web-deploy-k9.exe
- myeclipse2015破解.rar
- 97修课平台软件.zip
- Kotlin语言权威指南2020.pdf
- VirtualAudioCable.rar
- Hibernate3中文参考
- Algorithm_Introduction_Solutions.zip
- XE7UP1破解工具.rar
- DSC_v1.2.pdf
- X-Door[F335].rar
- 早起打卡挑战3.3.5.zip
- scvpn.exe
- Project3.rar
- Path_AstarB.rar
- IEC_62443工控网络与系统信息安全标准
- S7-200仿真软件V3.0汉化版.zip
- weatherview.rar
- 万能表单6.7.4.zip
- XGeocoding_1.0.0.13.rar
- JigsawGUI.rar
- iCloud源码.zip
- qq_30742865_9453697.e
- 0023、基于51单片机的数字频率计设计
- Jetbrains相关.rar
- 1088586红包拓客生意宝2.1.2.zip
- 药店管理系统数据库设计.zip
- LaJiGame.zip
- zw_iCloud源码.zip
评论
共有 条评论