qt/LedOK/ColorDialog/ColorDialog.h
2022-01-04 18:11:48 +08:00

59 lines
1.2 KiB
C++

#ifndef COLORDIALOG_H
#define COLORDIALOG_H
#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QEventLoop>
class ColorDialog : public QWidget
{
Q_OBJECT
public:
enum ButtonRole{Yes, No};
ColorDialog(QColor cr,bool bAlpha,QWidget *parent = nullptr);
~ColorDialog();
ButtonRole showDialog();
void setCurColor(const QColor &);
QColor getColor();
QRgb getRgb();
QColor getRgba();
ButtonRole m_buttonRole;
protected:
bool eventFilter(QObject *, QEvent *);
void show();
private:
void initSignalAndSlotConn();
void updateRGBColor(const QColor &);
private slots:
void colorItemSelcSlot(const QColor &);
void addCustomColorSlot();
void okBtnClickedSlot();
void cancelBtnClickedSlot();
void editChangedSlot(const QString &);
void editFinishedSlot();
void hValueChangedSlot(int);
void sValueChangedSlot(int);
void vValueChangedSlot(int);
void rValueChangedSlot(int);
void gValueChangedSlot(int);
void bValueChangedSlot(int);
void aValueChangedSlot(int);
void updateEditData(int, int, int);
private:
class ColorSetting;
ColorSetting * const m_pSetting;
QLabel *m_pTitleLbl;
QPushButton *m_pCloseBtn;
QEventLoop *m_pEvtLoop;
bool m_bNotEdit;
};
#endif // COLORDIALOG_H