2015-03-05 2 views
9

Beide Klassen bieten Anzeige- und Bearbeitungsfunktionen für Datenelemente aus einem Modell. QStyledItemDelegate ist neuer und die Qt-Dokumentation über QItemDelegate heißt es:Was ist der Unterschied zwischen QItemDelegate und QStyledItemDelegate?

Beachten Sie, dass QStyledItemDelegate über die Arbeit des Zeichnens von Qt genommen hat Artikel Ansichten. Wir empfehlen die Verwendung von QStyledItemDelegate beim Erstellen von neuen Delegaten .

Ich bin verwirrt, was ist der Unterschied zwischen den beiden und warum QStyledItemDelegate über QItemDelegate bevorzugt ist!

+5

einfach zu überprüfen basiert, haben Sie überprüft die 'QStyledItemDelegate vs. QItemDelegate' Abschnitt des http: //doc.qt. io/qt-5/qstyleditemdelegate.html Dokumentation? – Iuliu

+0

@luliu Ich habe diesen Teil verpasst. Vielen Dank. – Nejat

+7

Von der QItemDelegate Dokumentation: „““ Der Unterschied zwischen ihnen ist, dass QStyledItemDelegate den aktuellen Stil verwendet, um seine Produkte zu malen Wir QStyledItemDelegate als Basisklasse verwendet wird daher empfohlen, wenn benutzerdefinierte Delegierten implementieren oder wenn sie mit Qt-Stylesheets arbeiten. "" " Wenn Sie also ein Stylesheet verwenden, hat es keine Auswirkungen auf die Widgets, die von einem' QItemDelegate' erstellt wurden. Aus diesem Grund empfiehlt Qt stattdessen die Verwendung von 'QStyledItemDelegate'. – Alex

Antwort

3

Wie in der QStyledItemDelegate documentation erwähnt, ist der Unterschied, dass QStyledItemDelegate den aktuellen Stil verwendet, um seine Elemente zu malen.

Diese beiden Klassen sind unabhängige Alternativen zum Malen und bietet Editoren für Elemente in Ansichten. Der Unterschied zwischen ihnen ist , dass QStyledItemDelegate den aktuellen Stil verwendet, um seine Elemente zu malen. Wir empfehlen daher, QStyledItemDelegate als Basisklasse zu verwenden, wenn benutzerdefinierte Delegaten implementiert oder wenn Sie mit Qt-Stylesheets arbeiten. Der für beide Klassen erforderliche Code sollte gleich sein, es sei denn, der benutzerdefinierte Delegat muss den Stil zum Zeichnen verwenden.

Beachten Sie, dass diese Antwort auf die Kommentare von Iuliu und Alex

Verwandte Themen