Ich glaube nicht, dass es stimmt, dass die zweite Option keine benutzerdefinierten Steckplätze unterstützt.
Die Auswahl wird in der offiziellen Qt-Dokumentation erläutert. Siehe http://doc.qt.io/qt-4.8/designer-using-a-ui-file.html#compile-time-form-processing
Beachten Sie jedoch, dass die drei in diesem Dokument vorgestellten Ansätze nicht mit den drei Optionen in Qt Creator übereinstimmen. Der erste im Dokument vorgestellte Ansatz, der direkte Ansatz, gehört nicht zu den drei hier vorgestellten Möglichkeiten - dieser Ansatz ist nicht über die Qt Creator-Funktion verfügbar, die durch diese Einstellung gesteuert wird. Die zweite Option (Aggregation oder "Einzelvererbungsansatz") ist in zwei Varianten verfügbar, wobei der geringfügige Unterschied darin besteht, ob das ui-Klassenmitglied ein Datenmitglied (zweite Option) oder ein Zeigermitglied (erste Option) ist.
Ich bevorzuge die dritte Option, die Mehrfachvererbung. Dies ist auch der Weg, der überall verwendet wird C++ GUI-Programmierung mit Qt 4 (Erstausgabe kostenlos online verfügbar ), die diesen Ansatz als den saubersten bezeichnet. Wenn ich meine Klasse schreibe, denke ich nicht wirklich an zwei Objekte, eines mit der Benutzeroberfläche und das andere mit der Funktionalität, ich denke an nur eines, und Mehrfachvererbung passt am besten dazu. Aber das Dokument gibt die Gründe an, warum "Aggregation als Zeigerelement" der Standard ist.
0 Stimmen
Aggregat ist die Zusammensetzung. Sie haben also grundsätzlich die Optionen "point-to" (PIMPL), "has-a" (zusammengesetzt) oder "is-a" (Vererbung).