Вот коды:
colorbox.h
Раскрывающийся текст
#ifndef COLORBOX_H
#define COLORBOX_H
#include <QMouseEvent>
#include <QColorDialog>
#include <QPainter>
#include <QFlags>
class ColorBox
{
Q_OBJECT
public:
ColorBox(ColorBoxWidgetId id, QWidget *parent = 0); //строка 13
enum ID
{
FontColorBox, BackgroundColorBox, NotesColorBox
};
Q_DECLARE_FLAGS(ColorBoxWidgetId, ID)
private:
QColor color;
QPainter p;
ColorBoxWidgetId id;
protected:
virtual void mousePressEvent(QMouseEvent *ev);
virtual void paintEvent(QPaintEvent *e);
signals:
void clicked();
void selectedColor(QColor color, ColorBoxWidgetId id);
public slots:
void chooseColor();
void setColor(QColor color);
};
#endif // COLORBOX_H
colorbox.cpp
Раскрывающийся текст
#include "ColorBox.h"
#include <QDebug>
ColorBox::ColorBox(ColorBoxWidgetId id, QWidget *parent)
{
this->setGeometry(0,0,parent->width(),parent->height());
this->id = id;
}
void ColorBox::chooseColor()
{
QColorDialog *dialog = new QColorDialog(this);
connect(dialog, SIGNAL(colorSelected(QColor)), this, SLOT(setColor(QColor)));
dialog->exec();
}
void ColorBox::setColor(QColor color)
{
this->color = color;
update();
emit selectedColor(color, id);
}
void ColorBox::mousePressEvent(QMouseEvent *ev)
{
emit clicked();
}
void ColorBox::paintEvent(QPaintEvent *e)
{
p.begin(this);
p.fillRect(this->rect(), color);
p.end();
}