ACF $AcfVersion:0$
TGuiComponentBase.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QtGlobal>
7#if QT_VERSION >= 0x050000
8#include <QtWidgets/QWidget>
9#else
10#include <QtGui/QWidget>
11#endif
12
13
14// ACF includes
16
17
18namespace iqtgui
19{
20
21
25template <class WidgetType>
27{
28public:
30
32
33 virtual WidgetType* GetQtWidget() const;
34
35 // reimplemented (iqtgui::CGuiComponentBase)
36 virtual QWidget* CreateQtWidget(QWidget* parentPtr) override;
37};
38
39
40// public methods
41
42template <class WidgetType>
46
47
48template <class WidgetType>
50{
51 return dynamic_cast<WidgetType*>(GetWidget());
52}
53
54
55// reimplemented (iqtgui::CGuiComponentBase)
56
57template <class WidgetType>
59{
60 Q_ASSERT(!IsGuiCreated());
61
62 WidgetType* widgetPtr = new WidgetType(parentPtr);
63
64 return widgetPtr;
65}
66
67
68} // namespace iqtgui
69
70
71
72
Base class for classes implementing interface iqtgui::IGuiObject.
Base class for all Qt GUI componentes.
virtual QWidget * CreateQtWidget(QWidget *parentPtr) override
Create slave widget object.
virtual WidgetType * GetQtWidget() const
Standard GUI specific interfaces and components based on Qt.