Вылезка эта ошибка: D:\Documents\Qt\fb2Reader\fb2Reader-build-desktop\..\fb2Reader\ColorBox.h:13: ошибка: expected ')' before 'id' Какая еще скобка? Все скобки стоят как надо...
Вот коды:
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
#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();
}
Да у вас id это и член класса и наименование параметра.Что-нить надо переименовать
У меня в других классах куча переменных, которые совпадают с параметрами методов. Все ок.
тип ColorBoxWidgetId не известен.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)