forked from openkylin/ukui-menu
删除遗漏代码,补充应用菜单
This commit is contained in:
parent
add2e6c597
commit
3b22b2bac8
|
@ -1,104 +0,0 @@
|
|||
#include "push_button.h"
|
||||
|
||||
PushButton::PushButton(QWidget *parent) : QPushButton(parent)
|
||||
{
|
||||
m_btnLayout = new QHBoxLayout(this);
|
||||
this->setLayout(m_btnLayout);
|
||||
m_label = new IconLabel(this);
|
||||
m_btnLayout->addWidget(m_label);
|
||||
|
||||
m_label->setAlignment(Qt::AlignCenter);
|
||||
m_btnLayout->setAlignment(Qt::AlignCenter);
|
||||
}
|
||||
|
||||
void PushButton::setLabel(QPixmap pixmap, int size)
|
||||
{
|
||||
m_label->setFixedSize(size, size);
|
||||
m_label->setIcon(pixmap);
|
||||
}
|
||||
|
||||
PushButton::~PushButton()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void PushButton::paintEvent(QPaintEvent *e)
|
||||
{
|
||||
Q_UNUSED(e);
|
||||
QStylePainter painter(this);
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
QStyleOptionButton option;
|
||||
initStyleOption(&option);
|
||||
|
||||
if (option.state & QStyle::State_Sunken) {
|
||||
painter.save();
|
||||
painter.setPen(Qt::NoPen);
|
||||
painter.setBrush(Qt::white);
|
||||
if (g_curStyle == "ukui-dark" || g_isFullScreen) {
|
||||
painter.setOpacity(0.25);
|
||||
} else {
|
||||
painter.setOpacity(0.65);
|
||||
}
|
||||
|
||||
painter.drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 6, 6);
|
||||
painter.restore();
|
||||
}
|
||||
|
||||
if (option.state & QStyle::State_MouseOver) {
|
||||
painter.save();
|
||||
painter.setPen(Qt::NoPen);
|
||||
painter.setBrush(Qt::white);
|
||||
if (g_curStyle == "ukui-dark" || g_isFullScreen) {
|
||||
painter.setOpacity(0.1);
|
||||
} else {
|
||||
painter.setOpacity(0.35);
|
||||
}
|
||||
|
||||
painter.drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 6, 6);
|
||||
painter.restore();
|
||||
}
|
||||
|
||||
if (option.state & QStyle::State_On) {
|
||||
painter.save();
|
||||
painter.setPen(Qt::NoPen);
|
||||
painter.setBrush(Qt::white);
|
||||
if (g_curStyle == "ukui-dark" || g_isFullScreen) {
|
||||
painter.setOpacity(0.2);
|
||||
} else {
|
||||
painter.setOpacity(0.5);
|
||||
}
|
||||
|
||||
painter.drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 6, 6);
|
||||
painter.restore();
|
||||
}
|
||||
|
||||
if (option.state & QStyle::State_HasFocus) {
|
||||
painter.save();
|
||||
QStyleOption opt;
|
||||
QColor color = opt.palette.color(QPalette::Highlight);
|
||||
painter.setPen(QPen(color, 2));
|
||||
painter.drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 6, 6);
|
||||
painter.restore();
|
||||
}
|
||||
}
|
||||
|
||||
IconLabel::IconLabel(QWidget *parent)
|
||||
: QLabel(parent)
|
||||
{
|
||||
this->setContentsMargins(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
void IconLabel::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
QPainter painter(this);
|
||||
painter.setRenderHints(QPainter::SmoothPixmapTransform, true);
|
||||
painter.drawPixmap(0, 0, m_pixmap);
|
||||
return QLabel::paintEvent(event);
|
||||
}
|
||||
|
||||
void IconLabel::setIcon(const QPixmap &pixmap)
|
||||
{
|
||||
m_pixmap = pixmap;
|
||||
}
|
||||
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
#ifndef PUSHBUTTON_H
|
||||
#define PUSHBUTTON_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
#include <QStylePainter>
|
||||
#include <QStyleOption>
|
||||
#include <QHBoxLayout>
|
||||
#include "utility.h"
|
||||
|
||||
class IconLabel : public QLabel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
IconLabel(QWidget *parent = nullptr);
|
||||
void setIcon(const QPixmap &pixmap);
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event) override;
|
||||
|
||||
private:
|
||||
QPixmap m_pixmap;
|
||||
};
|
||||
|
||||
class PushButton : public QPushButton
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit PushButton(QWidget *parent = nullptr);
|
||||
~PushButton();
|
||||
|
||||
void setLabel(QPixmap pixmap, int size);
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *e) override;
|
||||
|
||||
private:
|
||||
QHBoxLayout *m_btnLayout = nullptr;
|
||||
IconLabel *m_label = nullptr;
|
||||
|
||||
Q_SIGNALS:
|
||||
|
||||
};
|
||||
#endif // PUSHBUTTON_H
|
|
@ -1,34 +0,0 @@
|
|||
#include "textlabel.h"
|
||||
#include <QDebug>
|
||||
|
||||
TextLabel::TextLabel(QWidget *parent) : QLabel(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void TextLabel::checkState(bool isChecked)
|
||||
{
|
||||
m_isChecked = isChecked;
|
||||
}
|
||||
|
||||
void TextLabel::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
if (m_isChecked) {
|
||||
return QLabel::paintEvent(event);
|
||||
}
|
||||
|
||||
QStylePainter painter(this);
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
QStyleOptionFrame option;
|
||||
initStyleOption(&option);
|
||||
|
||||
if (option.state & QStyle::State_HasFocus) {
|
||||
painter.save();
|
||||
QStyleOption opt;
|
||||
QColor color = opt.palette.color(QPalette::Highlight);
|
||||
painter.setPen(QPen(color, 2));
|
||||
painter.drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 6, 6);
|
||||
painter.restore();
|
||||
}
|
||||
QLabel::paintEvent(event);
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
#ifndef TEXTLABEL_H
|
||||
#define TEXTLABEL_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QLabel>
|
||||
#include <QPaintEvent>
|
||||
#include <QStylePainter>
|
||||
#include <QStyleOption>
|
||||
|
||||
class TextLabel : public QLabel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit TextLabel(QWidget *parent = nullptr);
|
||||
|
||||
void checkState(bool isChecked);
|
||||
|
||||
private:
|
||||
void paintEvent(QPaintEvent *event) override;
|
||||
|
||||
bool m_isChecked = false;
|
||||
|
||||
Q_SIGNALS:
|
||||
|
||||
};
|
||||
|
||||
#endif // TEXTLABEL_H
|
|
@ -174,6 +174,7 @@ public:
|
|||
|
||||
MenuManager::MenuManager() : d(new MenuManagerPrivate)
|
||||
{
|
||||
registerMenuProvider(new AppMenuProvider);
|
||||
loadMenus();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue