ist es irgendwie möglich, die eigenschaften von membern einer klasse in dieser selbst als Q_PROPERTY verfügbar zu machen?
kleines beispiel, wie ich es u.a. probiert habe:
Code: Alles auswählen
class SettingsClass: public QObject
{
Q_OBJECT
Q_PROPERTY( int m_int READ getInt WRITE setInt )
friend class MainWindow;
public:
SettingsClass( QObject *parent = 0 )
:QObject( parent )
{ /* ... */ }
SettingsClass( const SettingsClass &p_other ){ /* ... */ }
SettingsClass& operator=( const SettingsClass &p_other ){ /* ... */ }
void setInt( const int p_int ){ m_int = p_int; }
void setDouble( const double p_double ){ m_double = p_double; }
void setString( const QString &p_string ){ m_string = p_string; }
int getInt() const{ return m_int; }
double getDouble() const{ return m_double; }
QString getString() const{ return m_string; }
private:
int m_int;
double m_double;
QString m_string;
};Code: Alles auswählen
class MainWindow : public QMainWindow
{
Q_OBJECT
Q_PROPERTY( SettingsClass m_settings READ getSettings WRITE setSettings )
Q_PROPERTY( int m_settings::m_int READ m_settings::getInt WRITE m_settings::setInt ) // und das hier klappt natuerlich nicht ganz
public:
MainWindow(QWidget *parent = 0)
:QMainWindow( parent )
{ /* ... */ }
~MainWindow(){ /* ... */ }
SettingsClass& getSettings(){ return m_settings; }
void setSettings( const SettingsClass &p_settings ){ m_settings = p_settings; }
private: // oder auch public, macht keinen unterschied
SettingsClass m_settings;
};bisher konnte ich keine infos dazu finden, ob es auch so moeglich ist, oder nur direkte member der klasse als properties verfuegbar gemacht werden koennen ...
zur not muss ich mir eben was anderes ausdenken ...
kann mir da jemand weiterhelfen?
danke im voraus!
mfg,
julian