做边框修改

This commit is contained in:
zhaominyong 2022-02-23 12:10:39 +08:00
parent f029c195fd
commit 00c23c6617
3 changed files with 36 additions and 31 deletions

View File

@ -5,6 +5,7 @@
#include <QPainter> #include <QPainter>
#include <QApplication> #include <QApplication>
#include "imageutil.h" #include "imageutil.h"
#include "../gsettingswrapper.h"
MyIconButton::MyIconButton(QWidget *parent) : MyIconButton::MyIconButton(QWidget *parent) :
QPushButton(parent) QPushButton(parent)
@ -12,7 +13,7 @@ MyIconButton::MyIconButton(QWidget *parent) :
this->setCheckable(false); this->setCheckable(false);
m_iconButton = new QPushButton(this); m_iconButton = new QPushButton(this);
m_iconButton->setCheckable(false); m_iconButton->setCheckable(true);
m_iconButton->setFixedSize(QSize(24, 24)); m_iconButton->setFixedSize(QSize(24, 24));
m_iconButton->setFocusPolicy(Qt::NoFocus); m_iconButton->setFocusPolicy(Qt::NoFocus);
m_iconButton->setFlat(true); m_iconButton->setFlat(true);
@ -32,13 +33,6 @@ MyIconButton::MyIconButton(QWidget *parent) :
setLayout(hLayout); setLayout(hLayout);
connect(m_iconButton, &QPushButton::clicked, this, &MyIconButton::click); connect(m_iconButton, &QPushButton::clicked, this, &MyIconButton::click);
// connect(this, &QPushButton::toggled, this, [=] (bool checked) {
// if (checked)
// m_textLabel->setStyleSheet("color:white");
// else
// m_textLabel->setStyleSheet("color:palette(windowText)");
// });
connect(this, &QPushButton::toggled, this, &MyIconButton::changePalette);
} }
MyIconButton::~MyIconButton() MyIconButton::~MyIconButton()
@ -61,16 +55,26 @@ void MyIconButton::setDesplayText(const QString &text)
void MyIconButton::changePalette(bool checked) void MyIconButton::changePalette(bool checked)
{ {
// m_iconButton->setChecked(checked); m_iconButton->setChecked(checked);
QPalette pal(m_textLabel->palette()); QPalette pal = m_textLabel->palette();
QIcon icon = QIcon::fromTheme(m_themeIconName, QIcon(m_defaultIconName)); QIcon icon = QIcon::fromTheme(m_themeIconName, QIcon(m_defaultIconName));
QPixmap pix; QPixmap pix;
if (g_GSettingWrapper.isDarkTheme()) {
if (checked) { if (checked) {
pal.setColor(QPalette::ButtonText, pal.color(QPalette::HighlightedText)); pal.setColor(QPalette::ButtonText, this->palette().highlightedText().color());
pix = ImageUtil::loadPixmap(icon, QString("black"));
} else {
pal.setColor(QPalette::ButtonText, this->palette().windowText().color());
pix = ImageUtil::loadPixmap(icon, QString("white"));
}
} else {
if (checked) {
pal.setColor(QPalette::ButtonText, this->palette().highlightedText().color());
pix = ImageUtil::loadPixmap(icon, QString("white")); pix = ImageUtil::loadPixmap(icon, QString("white"));
} else { } else {
pal.setColor(QPalette::ButtonText, pal.color(QPalette::WindowText)); pal.setColor(QPalette::ButtonText, this->palette().windowText().color());
pix = ImageUtil::loadPixmap(icon, QString("default")); pix = ImageUtil::loadPixmap(icon, QString("black"));
}
} }
m_textLabel->setPalette(pal); m_textLabel->setPalette(pal);
m_iconButton->setIcon(pix); m_iconButton->setIcon(pix);
@ -79,6 +83,7 @@ void MyIconButton::changePalette(bool checked)
void MyIconButton::paintEvent(QPaintEvent *event) void MyIconButton::paintEvent(QPaintEvent *event)
{ {
QPushButton::paintEvent(event); QPushButton::paintEvent(event);
changePalette(isChecked());
m_textLabel->setFixedWidth(this->width() - 38); m_textLabel->setFixedWidth(this->width() - 38);
m_textLabel->setDeplayText(m_originalText); m_textLabel->setDeplayText(m_originalText);
} }

View File

@ -56,18 +56,18 @@ void MyIconLabel::setDesplayText(const QString &text)
} }
} }
void MyIconLabel::changePalette(bool dark) //void MyIconLabel::changePalette(bool dark)
{ //{
QPalette pal(m_textLabel->palette()); // QPalette pal(m_textLabel->palette());
QIcon icon = QIcon::fromTheme(m_themeIconName, QIcon(m_defaultIconName)); // QIcon icon = QIcon::fromTheme(m_themeIconName, QIcon(m_defaultIconName));
QPixmap pix; // QPixmap pix;
if (dark) { // if (dark) {
pal.setColor(QPalette::WindowText, pal.color(QPalette::HighlightedText)); // pal.setColor(QPalette::WindowText, pal.color(QPalette::HighlightedText));
pix = ImageUtil::loadPixmap(icon, QString("white")); // pix = ImageUtil::loadPixmap(icon, QString("white"));
} else { // } else {
pal.setColor(QPalette::WindowText, this->palette().color(QPalette::WindowText)); // pal.setColor(QPalette::WindowText, this->palette().color(QPalette::WindowText));
pix = ImageUtil::loadPixmap(icon, QString("default")); // pix = ImageUtil::loadPixmap(icon, QString("default"));
} // }
m_textLabel->setPalette(pal); // m_textLabel->setPalette(pal);
m_iconLabel->setPixmap(pix); // m_iconLabel->setPixmap(pix);
} //}

View File

@ -15,7 +15,7 @@ public:
void setDesplayText(const QString &text); void setDesplayText(const QString &text);
public slots: public slots:
void changePalette(bool checked); // void changePalette(bool checked);
private: private:
QLabel *m_iconLabel; QLabel *m_iconLabel;