Описание класса С++ в QtCreator
Здравствуйте!
Есть реализация класса в main.cpp(создается и используется там же)
class Button : public QGraphicsWidget { Q_OBJECT public: Button(const QPixmap &pixmap, QGraphicsItem *parent = 0) : QGraphicsWidget(parent), _pix(pixmap) { setAcceptHoverEvents(true); setCacheMode(DeviceCoordinateCache); } QRectF boundingRect() const Q_DECL_OVERRIDE { return QRectF(-65, -65, 130, 130); } QPainterPath shape() const Q_DECL_OVERRIDE { QPainterPath path; path.addEllipse(boundingRect()); return path; } void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *) Q_DECL_OVERRIDE { bool down = option->state & QStyle::State_Sunken; QRectF r = boundingRect(); QLinearGradient grad(r.topLeft(), r.bottomRight()); grad.setColorAt(down ? 1 : 0, option->state & QStyle::State_MouseOver ? Qt::white : Qt::lightGray); grad.setColorAt(down ? 0 : 1, Qt::darkGray); painter->setPen(Qt::darkGray); QLinearGradient grad2(r.topLeft(), r.bottomRight()); painter->setBrush(grad); painter->drawEllipse(r); grad.setColorAt(down ? 1 : 0, Qt::darkGray); grad.setColorAt(down ? 0 : 1, Qt::lightGray); painter->setPen(Qt::NoPen); painter->setBrush(grad2); if (down) painter->translate(2, 2); painter->drawEllipse(r.adjusted(5, 5, -5, -5)); painter->drawPixmap(-_pix.width()/2, -_pix.height()/2, _pix); } signals: void pressed(); protected: void mousePressEvent(QGraphicsSceneMouseEvent *) Q_DECL_OVERRIDE { emit pressed(); update(); } void mouseReleaseEvent(QGraphicsSceneMouseEvent *) Q_DECL_OVERRIDE { update(); } private: QPixmap _pix; };Как разделить данный на класс на заголовочный файл с его объявлением и на *.cpp с его реализацией в QtCreator?
И что означает Q_DECL_OVERRIDE??
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
d
- dsfs
- April 26, 2024, 11:56 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
d
- dsfs
- April 26, 2024, 11:35 a.m.
C++ - Test 001. The first program and data types
- Result:73points,
- Rating points1
Last comments
Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоFeb. 5, 2024, 9:50 a.m.
EVADec. 25, 2023, 6:30 p.m.
Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Now discuss on the forum
Evgenii LegotckoiMay 2, 2024, 9:07 p.m.
IscanderCheApril 30, 2024, 11:22 a.m.
Павел ДорофеевApril 14, 2024, 9:35 a.m.
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
День добрый!
Большое спасибо
Есть еще такая реализация
Для начала добавьте недостающие методы и участники для Q_PROPERTY.