Hi I am developing a library and in Qt Tradition I want to use the d_ptr pattern. I have no previous experience of using this pattern and have a simple example working but wanted to check that my implementation is correct. To that end I have set out my classes below and would be grateful if anyone could confirm that my approach is correct(or not)
Thanks Header file #ifndef DISPLAYWIDGET_H #define DISPLAYWIDGET_H #include "DisplayWidgetsGlobal.h" #include <QWidget> class DisplayWidgetPrivate; class DISPLAYWIDGETS_EXPORT DisplayWidget : public QWidget { Q_OBJECT public: DisplayWidget(QWidget *parent); ~DisplayWidget(); private: DisplayWidgetPrivate* d_ptr; Q_DECLARE_PRIVATE(DisplayWidget) }; #endif // DISPLAYWIDGET_H Private Header file #include "DisplayWidget.h" class QLabel; class DisplayWidgetPrivate { public: DisplayWidgetPrivate (DisplayWidget* parent); void init(); QLabel* m_label; DisplayWidget* const q_ptr; Q_DECLARE_PUBLIC(DisplayWidget) public: DisplayWidgetPrivate(); }; Implementation file #include <QLabel> #include "DisplayWidget.h" #include "DisplayWidget_p.h" DisplayWidgetPrivate::DisplayWidgetPrivate(DisplayWidget* parent) : q_ptr(parent) { } void DisplayWidgetPrivate::init() { m_label = new QLabel("This is a label",q_ptr); } DisplayWidget::DisplayWidget(QWidget *parent) : QWidget(parent), d_ptr(new DisplayWidgetPrivate(this)) { Q_D(DisplayWidget); d->init(); } DisplayWidget::~DisplayWidget() { }
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest