量化交易之QT篇 - 自定义QPushButton - TQZCloseButton&TQZCommonButton

文章定义了两个基于QPushButton的自定义类TQZCommonButton和TQZCloseButton,分别处理鼠标进入和离开事件,改变按钮的样式。当鼠标进入时,按钮背景色变化;离开时恢复原样。TQZCommonButton用于一般用途,TQZCloseButton可能用于关闭操作,颜色设计更引人注目。
摘要由CSDN通过智能技术生成
// TQZCommonButton.h

#ifndef TQZCOMMONBUTTON_H
#define TQZCOMMONBUTTON_H

//#include <QWidget>
#include <QPushButton>


class TQZCommonButton : public QPushButton
{
    Q_OBJECT
public:
    explicit TQZCommonButton(QWidget *parent = nullptr);
    explicit TQZCommonButton(const QString &text, QWidget *parent = nullptr);


protected:
    void enterEvent(QEvent* event);
    void leaveEvent(QEvent* event);

private:
    void UpdateSelf(const QString &text);

signals:

};

#endif // TQZCOMMONBUTTON_H
// TQZCommonButton.cpp

#include "CommonButton.h"

#include <QFont>
#include <QMouseEvent>

#include <QDebug>


TQZCommonButton::TQZCommonButton(QWidget *parent) : QPushButton(parent)
{
    UpdateSelf("");
}

TQZCommonButton::TQZCommonButton(const QString &text, QWidget *parent) : QPushButton(parent)
{
    UpdateSelf(text);
}


void TQZCommonButton::UpdateSelf(const QString &text) {
    this->setText(text);
    this->setStyleSheet("TQZCommonButton { border: none; color: white; }");
}


void TQZCommonButton::enterEvent(QEvent* event) {
    this->setStyleSheet("TQZCommonButton { border-radius: 6px; border: none; background-color: rgb(63, 60, 60); color: white; }");

    QPushButton::enterEvent(event);
}

void TQZCommonButton::leaveEvent(QEvent* event) {
    this->setStyleSheet("TQZCommonButton { border: none; color: white; }");

    QPushButton::leaveEvent(event);
}

// TQZCloseButton.h

#ifndef TQZCLOSEBUTTON_H
#define TQZCLOSEBUTTON_H

#include <QPushButton>

class TQZCloseButton : public QPushButton
{
    Q_OBJECT
public:
    explicit TQZCloseButton(QWidget *parent = nullptr);
    explicit TQZCloseButton(const QString &text, QWidget *parent = nullptr);

protected:
    void enterEvent(QEvent* event);
    void leaveEvent(QEvent* event);

signals:

};

#endif // TQZCLOSEBUTTON_H
// TQZCloseButton.cpp

#include "CloseButton.h"

#include <QFont>
#include <QMouseEvent>

#include <QDebug>


TQZCloseButton::TQZCloseButton(QWidget *parent) : QPushButton(parent)
{
    this->setText("");
    this->setStyleSheet("TQZCloseButton { border: none; color: white; }");
}

TQZCloseButton::TQZCloseButton(const QString &text, QWidget *parent) : QPushButton(parent) {
    this->setText(text);
    this->setStyleSheet("TQZCloseButton { border: none; color: white; }");
}

void TQZCloseButton::enterEvent(QEvent* event) {
    this->setStyleSheet("TQZCloseButton { border-radius: 6px; border: none; background-color: rgb(228, 64, 50); color: white; }");

    QPushButton::enterEvent(event);
}

void TQZCloseButton::leaveEvent(QEvent* event) {
    this->setStyleSheet("TQZCloseButton { border: none; color: white; }");

    QPushButton::leaveEvent(event);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值