1
0
mirror of https://gitee.com/drabel/LibQQt.git synced 2025-01-04 10:18:44 +08:00

add qqtsvgcheckbox

This commit is contained in:
tianduanrui 2017-11-17 00:01:26 +08:00
parent 1f7b5eda90
commit 6d049c0a56
7 changed files with 64 additions and 15 deletions

View File

@ -14,10 +14,12 @@
#------------------------------------------------- #-------------------------------------------------
SOURCES += \ SOURCES += \
$$PWD/svgwidgets/qqtsvgwidget.cpp \ $$PWD/svgwidgets/qqtsvgwidget.cpp \
$$PWD/svgwidgets/qqtsvgpushbutton.cpp $$PWD/svgwidgets/qqtsvgpushbutton.cpp \
$$PWD/svgwidgets/qqtsvgcheckbox.cpp
HEADERS += \ HEADERS += \
$$PWD/svgwidgets/qqtsvgwidget.h \ $$PWD/svgwidgets/qqtsvgwidget.h \
$$PWD/svgwidgets/qqtsvgpushbutton.h $$PWD/svgwidgets/qqtsvgpushbutton.h \
$$PWD/svgwidgets/qqtsvgcheckbox.h
#root dir #root dir
HEADERS += $$PWD/qqt.h \ HEADERS += $$PWD/qqt.h \

View File

@ -4,3 +4,27 @@ QQtSvgCheckBox::QQtSvgCheckBox(QWidget* parent) : QQtCheckBox(parent)
{ {
} }
void QQtSvgCheckBox::renderToVariable()
{
TBtnIconTable& pic = iconTable();
for (int i = 0; i < BTN_MAX; i++)
r[i].load(pic[i]);
}
void QQtSvgCheckBox::paintEvent(QPaintEvent* event)
{
Q_UNUSED(event)
QStylePainter p(this);
int bs = isChecked() ? BTN_PRESS : BTN_NORMAL;
if (r[bs].isValid())
r[bs].render(&p);
bool enabled = isEnabled();
QStyleOptionButton opt;
initStyleOption(&opt);
p.drawItemText(rect(), Qt::AlignBottom, opt.palette, enabled, text());
}

View File

@ -9,9 +9,20 @@ class QQtSvgCheckBox : public QQtCheckBox
public: public:
explicit QQtSvgCheckBox(QWidget* parent = nullptr); explicit QQtSvgCheckBox(QWidget* parent = nullptr);
/**
* @brief renderToVariable
* call this function after iconTable() set.
*/
void renderToVariable();
signals: signals:
public slots: public slots:
// QWidget interface
protected:
virtual void paintEvent(QPaintEvent* event) override;
private:
QSvgRenderer r[BTN_MAX];
}; };
#endif // QQTSVGCHECKBOX_H #endif // QQTSVGCHECKBOX_H

View File

@ -1,5 +1,4 @@
#include "qqtsvgpushbutton.h" #include "qqtsvgpushbutton.h"
#include <QString>
QQtSvgPushButton::QQtSvgPushButton(QWidget* parent) : QQtPushButton(parent) QQtSvgPushButton::QQtSvgPushButton(QWidget* parent) : QQtPushButton(parent)
{ {
@ -22,6 +21,7 @@ void QQtSvgPushButton::paintEvent(QPaintEvent* event)
QStylePainter p(this); QStylePainter p(this);
EBtnStatus bs = btnStatus(); EBtnStatus bs = btnStatus();
if (r[bs].isValid())
r[bs].render(&p); r[bs].render(&p);
bool enabled = isEnabled(); bool enabled = isEnabled();

View File

@ -11,12 +11,18 @@ QQtCheckBox::~QQtCheckBox()
{ {
} }
void QQtCheckBox::pixMap(QImage& icon, QImage& iconSel) void QQtCheckBox::pixMap(QImage& icon, QImage& iconSel) const
{ {
icon = QImage(this->m_icon[BTN_NORMAL]); icon = QImage(this->m_icon[BTN_NORMAL]);
iconSel = QImage(this->m_icon[BTN_PRESS]); iconSel = QImage(this->m_icon[BTN_PRESS]);
} }
void QQtCheckBox::pixMap(QString& icon, QString& iconSel) const
{
icon = m_icon[BTN_NORMAL];
iconSel = m_icon[BTN_PRESS];
}
void QQtCheckBox::setPixmap(const QString& icon, const QString& iconSel) void QQtCheckBox::setPixmap(const QString& icon, const QString& iconSel)
{ {
this->m_icon[BTN_NORMAL] = icon; this->m_icon[BTN_NORMAL] = icon;

View File

@ -5,6 +5,8 @@
#include "qqtcore.h" #include "qqtcore.h"
#include "qqtwidgets.h" #include "qqtwidgets.h"
#include "qqt-local.h" #include "qqt-local.h"
#include <QSvgRenderer>
#include <qqtwidgets.h>
/** /**
* @brief The QQtCheckBox class * @brief The QQtCheckBox class
@ -17,15 +19,19 @@ class QQTSHARED_EXPORT QQtCheckBox : public QCheckBox
public: public:
explicit QQtCheckBox(QWidget* parent = 0); explicit QQtCheckBox(QWidget* parent = 0);
virtual ~QQtCheckBox(); virtual ~QQtCheckBox();
void pixMap(QImage& m_icon, QImage& m_iconSel);
void setPixmap(const QString& m_icon = QString(), const QString& m_iconSel = QString()); inline TBtnIconTable& iconTable() { return m_icon; }
void pixMap(QImage& icon, QImage& iconSel) const;
void pixMap(QString& icon, QString& iconSel) const;
void setPixmap(const QString& icon = QString(),
const QString& iconSel = QString());
private: private:
TBtnIconTable m_icon; TBtnIconTable m_icon;
// QWidget interface // QWidget interface
protected: protected:
void paintEvent(QPaintEvent*); virtual void paintEvent(QPaintEvent*) override;
// QAbstractButton interface // QAbstractButton interface
protected: protected:

View File

@ -12,7 +12,7 @@ class QQTSHARED_EXPORT QQtPushButton : public QPushButton
public: public:
explicit QQtPushButton(QWidget* parent = 0); explicit QQtPushButton(QWidget* parent = 0);
~QQtPushButton(); virtual ~QQtPushButton();
/* /*
* QQtPushButton [] = * QQtPushButton [] =
@ -27,15 +27,15 @@ private:
// QWidget interface // QWidget interface
protected: protected:
void paintEvent(QPaintEvent*); virtual void paintEvent(QPaintEvent*) override;
// QWidget interface // QWidget interface
protected: protected:
void mousePressEvent(QMouseEvent*); virtual void mousePressEvent(QMouseEvent*) override;
void mouseReleaseEvent(QMouseEvent*); virtual void mouseReleaseEvent(QMouseEvent*) override;
void enterEvent(QEvent*); virtual void enterEvent(QEvent*) override;
void leaveEvent(QEvent*); virtual void leaveEvent(QEvent*) override;
void changeEvent(QEvent* e); virtual void changeEvent(QEvent* e) override;
// QWidget interface // QWidget interface
protected: protected: