RioEngine
0.1
My first attempt to create a 3D WYSIWYG Game Engine
|
The QPropertyEditorWidget offers an easy to use mechanism to visualize properties of a class inherited from QObject. More...
#include <qpropertyeditorwidget.h>
Public Types | |
typedef Property *(* | UserTypeCB) (const QString &name, QObject *propertyObject, Property *parent) |
Public Member Functions | |
QPropertyEditorWidget (QWidget *parent=0) | |
Constructor. More... | |
virtual | ~QPropertyEditorWidget () |
Destructor. More... | |
void | addObject (QObject *propertyObject) |
void | setObject (QObject *propertyObject) |
void | updateObject (QObject *propertyObject) |
void | updateObject () |
void | registerCustomPropertyCB (UserTypeCB callback) |
void | unregisterCustomPropertyCB (UserTypeCB callback) |
The QPropertyEditorWidget offers an easy to use mechanism to visualize properties of a class inherited from QObject.
Qt provides a nice way to define class properties by using the Q_PROPERTY macro. The purpose of the QPropertyEditor is to visualize these properties in an easy way.
To use the property editor, all you have to do is to create a class that defines it's properties by using Q_PROPERTY and to add this class by using the addObject() method of this QPropertyEditorWidget class. The QPropertyEditorWidget is inherited from QTreeView and will display the properties in a tree with two columns: Name and Value
For basic data types the build in editor widgets of Qt will be used. The QPropertyEditor itself only defines an additional editor for QColor (based on the Color Editor Factory Example from Trolltech). But it can easily be extended by yourself either within the library or for special datatypes also outside of the library in your application.
Definition at line 55 of file qpropertyeditorwidget.h.
typedef Property*(* QPropertyEditorWidget::UserTypeCB) (const QString &name, QObject *propertyObject, Property *parent) |
A typedef for a callback used to create user defined properties for custom datatypes
Definition at line 63 of file qpropertyeditorwidget.h.
QPropertyEditorWidget::QPropertyEditorWidget | ( | QWidget * | parent = 0 | ) |
Constructor.
Creates a new editor widget based on QTreeView
parent | optional parent widget |
Definition at line 29 of file qpropertyeditorwidget.cpp.
|
virtual |
Destructor.
Definition at line 39 of file qpropertyeditorwidget.cpp.
void QPropertyEditorWidget::addObject | ( | QObject * | propertyObject | ) |
Adds the user properties of the given class to the QPropertyModel associated with this view
propertyObject | the class inherited from QObject that contains user properties that should be managed by the QPropertyModel associated with this view |
Definition at line 43 of file qpropertyeditorwidget.cpp.
void QPropertyEditorWidget::registerCustomPropertyCB | ( | UserTypeCB | callback | ) |
If you define custom datatypes outside of this library the QPropertyModel will check if you also defined a callback that is responsible to create custom property classes inherited from Property to handle these datatypes. With this method you can register such a callback that will create custom properties for custom datatypes.
Definition at line 68 of file qpropertyeditorwidget.cpp.
void QPropertyEditorWidget::setObject | ( | QObject * | propertyObject | ) |
Similar to the addObject() method this method adds the properties of the given class to the QPropertyModel associated with this view. But in contrast to addObject() it will clear the model before, removing all previously added objects.
propertyObject | the class inherited from QObject that contains user properties that should be managed by the QPropertyModel associated with this view |
Definition at line 50 of file qpropertyeditorwidget.cpp.
void QPropertyEditorWidget::unregisterCustomPropertyCB | ( | UserTypeCB | callback | ) |
You can register more than one callback. If one of those callbacks are not used any longer, you can unregister it with this method
Definition at line 73 of file qpropertyeditorwidget.cpp.
void QPropertyEditorWidget::updateObject | ( | QObject * | propertyObject | ) |
Updates the view for the given object. This can be usefull if a property was changed programmatically instead of using the view. In this case the view normally will display the new property values only after the user clicked on it. To overcome this problem you can call updateObject with the object whose property was changed.
Definition at line 57 of file qpropertyeditorwidget.cpp.
void QPropertyEditorWidget::updateObject | ( | ) |
Definition at line 63 of file qpropertyeditorwidget.cpp.