QStandardItem vererben

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
forgoden
Beiträge: 120
Registriert: 10. Februar 2008 17:52

QStandardItem vererben

Beitrag von forgoden »

ich möchte z.b. diesen Konstruktor überladen

Code: Alles auswählen

QStandardItem::QStandardItem(const QString &text)
    : d_ptr(new QStandardItemPrivate)
{
    Q_D(QStandardItem);
    d->q_ptr = this;
    setText(text);
}
Es scheint zu funktionieren wenn ich nur so schreibe

Code: Alles auswählen

Item::Item(const QString &text)
{
    setText(text);
}
Aber trotzdem frage ich mich was ausgelassen wurde? Der Zeiger q_ptr würde dann nicht mehr auf this zeigen. Außerdem hat es kein Elementinitialisierer mehr. Hab kein Plan was ich da reinschreiben soll.

d-> wird wohl eingesetzt wegen compiler-firewall, aber wie gehe ich da vor?

ich kann zurückverfolgen dann kommen Befehle wie

Q_DECLARE_PRIVATE(QStandardItem)
oder
QScopedPointer<QStandardItemPrivate> d_ptr;
aber was ersetze ich da?
Win7, VisualStudio 2010, Qt 4.7
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wie wäre es echt mal mit C++ Grundlagen?

Code: Alles auswählen

Item::Item(const QString &text)
  : QStandardItem(text)
{}
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
padreigh
Beiträge: 340
Registriert: 13. Mai 2010 10:06

Beitrag von padreigh »

Zum Ableiten der QWasAuchImmer must du NIEMALS das Q_P oder p-> irgendwas anfassen - das sind Mechanismen die Binärkompatibilität bei wechselnder Implementation seites Nokia/Trolltech/WieHiesDerNeueDabei garantieren sollen --> WIKIPEDIA ( http://en.wikipedia.org/wiki/Private_cl ... o_known_as )

Hör am besten auf in den QtSourcen zu snüfen und schau dir die diversen Examples an. Und vergiss das pimpln für 12 Monate - wenns dich dann wieder interessiert kannst du da rumdoktoren.
Patrick (QtCreator 1.3.1, Qt 4.6.3)
---
template = subdirs
forgoden
Beiträge: 120
Registriert: 10. Februar 2008 17:52

Beitrag von forgoden »

Christian81 hat geschrieben:Wie wäre es echt mal mit C++ Grundlagen?

Code: Alles auswählen

Item::Item(const QString &text)
  : QStandardItem(text)
{}
Im Prinzip hab ich die Grundlagen durchgelesen, nur vergessen.
sorry dass ich bißchen zu steil eingestiegen bin.
und danke, jetzt weiss ich immer wie es geht.

@padreigh: dann weiss ich wie die herangehensweise ist
Win7, VisualStudio 2010, Qt 4.7
padreigh
Beiträge: 340
Registriert: 13. Mai 2010 10:06

Beitrag von padreigh »

Ich weiss, der Vergleich hinkt, aber du inspizierst ein Formel1-Motor um deinen Käfer Bj 1970 zu reparieren ;)

Sollte ich mich irren und du bist genial, gelingt dir das - mir gelingt es so nicht.
Patrick (QtCreator 1.3.1, Qt 4.6.3)
---
template = subdirs
Antworten