当前位置:网站首页>QT self drawing button with bubbles
QT self drawing button with bubbles
2022-07-03 10:02:00 【Master Hao】
#include
#include
class QTipButton : public QPushButton
{
public:
QTipButton(QWidget *parent);
virtual ~QTipButton(void);
virtual void paintEvent(QPaintEvent * event);
void setButtonNum(int buttonNum);
private:
int _buttonNum=0;
};
#include “qtipbutton.h”
#include “qpainter.h”
#include “QRgb”
QTipButton::QTipButton(QWidget *parent)
: QPushButton(parent)
{
}
QTipButton::~QTipButton(void)
{
}
void QTipButton::paintEvent(QPaintEvent * event)
{
QPainter painter(this);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);// Anti-Aliasing , Anti aliasing
QRect rt = rect();
QRect rt1 = QRect(rt.left()+rt.width()*0.70, (rt.top()+rt.height()*0.15), rt.height()*0.7, rt.height()*0.7);
QRect rt2 = QRect(rt.left(), rt.top(),
rt.width(), rt.height());
if(this->isChecked())
{
painter.fillRect(rt2, QColor(34,160,108));
painter.setPen(Qt::white);
painter.drawText(rt, Qt::AlignCenter, text());
}
else
{
painter.fillRect(rt2, QColor(71, 102, 92));
painter.setPen(Qt::white);
painter.drawText(rt, Qt::AlignCenter, text());
}
painter.setPen(QColor(163, 0, 20));
painter.setBrush(QBrush(Qt::red));
if( _buttonNum!=0)
{
painter.drawEllipse(rt1);
}
painter.setPen(Qt::white);
if( _buttonNum!=0)
{
painter.drawText(rt1, Qt::AlignCenter, QString::number(_buttonNum));
}
}
void QTipButton::setButtonNum(int buttonNum)
{
_buttonNum = buttonNum;
}
边栏推荐
- Not many people can finally bring their interests to college graduation
- Fundamentals of Electronic Technology (III)__ Chapter 1 resistance of parallel circuit
- Uniapp realizes global sharing of wechat applet and custom sharing button style
- 手机都算是单片机的一种,只不过它用的硬件不是51的芯片
- 自动装箱与拆箱了解吗?原理是什么?
- Idea remote breakpoint debugging jar package project
- 4G module IMEI of charging pile design
- 一个可执行的二进制文件包含的不仅仅是机器指令
- Stm32 NVIC interrupt priority management
- STM32 general timer 1s delay to realize LED flashing
猜你喜欢
Notes on C language learning of migrant workers majoring in electronic information engineering
JS基础-原型原型链和宏任务/微任务/事件机制
03 FastJson 解决循环引用
I think all friends should know that the basic law of learning is: from easy to difficult
编程思想比任何都重要,不是比谁多会用几个函数而是比程序的理解
Timer and counter of 51 single chip microcomputer
Crash工具基本使用及实战分享
Interruption system of 51 single chip microcomputer
There is no specific definition of embedded system
Open Euler Kernel Technology Sharing - Issue 1 - kdump Basic Principles, use and Case Introduction
随机推荐
Which language should I choose to program for single chip microcomputer
Education is a pass and ticket. With it, you can step into a higher-level environment
2020-08-23
我想各位朋友都应该知道学习的基本规律就是:从易到难
Screen display of charging pile design -- led driver ta6932
yocto 技术分享第四期:自定义增加软件包支持
STM32 running lantern experiment - library function version
Quelle langue choisir pour programmer un micro - ordinateur à puce unique
2021-10-27
Exception handling of arm
Stm32f04 clock configuration
Open Euler Kernel Technology Sharing - Issue 1 - kdump Basic Principles, use and Case Introduction
Liquid crystal display
STM32 general timer output PWM control steering gear
STM32 serial communication principle
QT qcombobox QSS style settings
LeetCode - 919. 完全二叉树插入器 (数组)
JS基础-原型原型链和宏任务/微任务/事件机制
The third paper of information system project manager in soft examination
内存数据库究竟是如何发挥内存优势的?