PyQt4 QWidgetList - Keine Duplikate zulassen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
spite
User
Beiträge: 11
Registriert: Sonntag 24. Januar 2010, 20:07

Hallo zusammen
Ich habe eine Simple QWidgetList, die ich ohne weiteres auch befüllen kann. Probleme bereiten mir die Dublikate, sprich jedes Item solle nur einmal vorkommen.
Wie bewerkstellige ich dies am besten, kann man dies schhon bei der Methode addItem() bewerkstelligen oder muss ich im nachhinein die Liste nochmals durchkämmen?
Ich danke schon mal im vorraus und grüsse aus der nähe von Zürich.
Spite
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

spite hat geschrieben:ch habe eine Simple QWidgetList
Meinst Du QListWidget?
spite hat geschrieben:jedes Item solle nur einmal vorkommen.
Wie bewerkstellige ich dies am besten, kann man dies schhon bei der Methode addItem() bewerkstelligen oder muss ich im nachhinein die Liste nochmals durchkämmen?
Weder noch:
"Warning: A QListWidgetItem can only be added to a QListWidget once. Adding the same QListWidgetItem multiple times to a QListWidget will result in undefined behavior."
http://qt-project.org/doc/qt-4.8/qlistw ... #addItem-2

Du musst also vorher dafür sorgen, dass Du nichts doppelt hinzufügst.
a fool with a tool is still a fool, www.magben.de, YouTube
BlackJack

@spite: Das würde man üblicherweise *ausserhalb* des Widgets lösen in dem man sich merkt was dort angezeigt wird und dort dann eben auch prüft ob ein Element schon enthalten ist. GUI ist zum Anzeigen von Daten und zum Entgegennehmen von Eingaben des Benutzers da, nicht um dort, und nur dort, Daten zu speichern.
spite
User
Beiträge: 11
Registriert: Sonntag 24. Januar 2010, 20:07

Danke euch!
Ich dachte nur, dass QListWidget evt. eine solche methode besitzt und ich diese einfach nicht gefunden hätte.
Mir ist sehr wohl bewust, dass das GUI nur eine reine Anzeige ist und kein Speicherort aber ich brauche die Liste als "Vorselektion" vom User.
Tschüss und Grüsse!
Antworten