Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Common/LtsWidgets/lts_bitfield_widget.h
T

85 lines
1.7 KiB
C++

#pragma once
#include "lts_widgets_export.h"
#include <QMouseEvent>
#include <QObject>
#include <QWidget>
namespace LtsWidgets
{
class LTSWIDGETS_EXPORT LtsBitfieldWidget : public QWidget
{
Q_OBJECT
Q_PROPERTY(quint8 value READ value WRITE setValue NOTIFY valueChanged)
Q_PROPERTY(bool isEditable READ isEditable WRITE setEditable NOTIFY isEditableChanged)
Q_PROPERTY(bool hasCaption READ hasCaption WRITE setHasCaption NOTIFY hasCaptionChanged)
Q_PROPERTY(QColor onColor READ onColor WRITE setOnColor)
Q_PROPERTY(QColor offColor READ offColor WRITE setOffColor)
public:
explicit LtsBitfieldWidget(QWidget* parent = nullptr, quint8 value = 0);
signals:
void valueChanged(quint8 newValue);
void isEditableChanged(bool option);
void hasCaptionChanged(bool option);
public slots:
void setValue(quint8 value);
void setEditable(bool editable);
void setHasCaption(bool hasCaption);
void setOnColor(const QColor& onColor);
void setOffColor(const QColor& offColor);
public:
quint8 value() const
{
return m_value;
}
bool isEditable() const
{
return m_isEditable;
}
bool hasCaption() const
{
return m_hasCaption;
}
QColor onColor() const
{
return m_onColor;
}
QColor offColor() const
{
return m_offColor;
}
private:
void mousePressEvent(QMouseEvent* event) override;
void paintEvent(QPaintEvent* pe) override;
private:
quint8 m_value = 0;
bool m_isEditable = true;
bool m_hasCaption = true;
QColor m_onColor = Qt::black;
QColor m_offColor = Qt::white;
};
} // namespace LtsWidgets