Seite 1 von 1

Python und /oder QT

Verfasst: 5. August 2005 10:20
von notebook20000
Hallo,

ich habe eine QT Listbox. Darin speicher ich z.B. Mitarbeiternamen. Da ich diese aber einmalig über eine ID in der DB identifiziere, muss ich eine parallele Liste mit diesen IDs verwalten

Solang die Listen eu geladen wird geht das auch aber wenn ich jetzt ein Element entferne oder hinzufüge wird die interne Nummerierung der Listbox durcheinader geworfen

z.B.

ListBox
Nr. Wert:
1 Michael
2 Markus
3 Thomas
4 Horst
5 Sabine
6 Karin
7 John
8 Bernd

removeItem(4) und das ganze siehtd ann wohl ungefähr so aus
Nr. Wert:
1 Michael
2 Markus
3 Thomas
4 Sabine
5 Karin
6 John
7 Bernd


Noch schlimmer wirds dann wohl wnen ich ein sort auf diese Listbox ausführe nachdem ich ein neues Ite hinzugefügt habe:(

Eine Liste wäre ungefähr so aufgebaut


mitarbeiter[1]= 105
mitarbeiter[2]= 366
mitarbeiter[3]= 15
mitarbeiter[4]= 66
u.s.w.

Wenn ich jetzt mit removeItem aus der Listbox einen Eintrag entferne wird die Nummern kaum nachvollziehbar neu nummeriert udn die Verbindung der beiden Datensätze ist wech:(

In HTML z.B. kann man für jeden Eintrag einen Namen udn einen Wert speichern. Das machtd as ganze sehr komfortabel:(

Wie kann ich das trpotzdem verwalten?

Anfänglich habe ich die ganze Liste neu geladen aber das geht aus Geschwindigkeitsgründen nicht mehr bei ca 1000 Einträgen

Verfasst: 5. August 2005 11:30
von BartSimpson
Dann baue dir doch dein eigens Listbox Item basierend auf ListBoxText
dann kannste da meintwegen noch die Angestellten ID aus der DB ablegen.

Verfasst: 5. August 2005 12:12
von notebook20000
? Wie geht sowas ?

Verfasst: 5. August 2005 12:28
von BartSimpson
Eine Klasse schreiben, die von ListBoxText abgeleitet ist.
Diese wird denn entsprechend und die gewünschen Funktionen
erweitert.z.B:

Code: Alles auswählen

class wasauchimmer: public QListBoxText
{
   public:
     wasauchimmer(QListBox *liste,QString text,uint angestelltenid);
    uint AngestelteIDHohlen();
   private:
     uint AngestellteID;

};

wasauchimmer::wasauchimmer(QLiszbox *liste,QString text,uint angestelltenid):QListboxText(liste,text)
{
    AngestellteID=angestelltenid;
}
uint wasauchimmer::AngestelteIDHohlen()
{
   return AngestellteID;
}

Re: Python und /oder QT

Verfasst: 5. August 2005 13:36
von macman
notebook20000 hat geschrieben:Wie kann ich das trpotzdem verwalten?
Eine weitere Spalte für den Index und deren Breite setzt Du auf 0. Ist für den User nicht sichtbar und er kann auch nicht drauf zugreifen.

Verfasst: 5. August 2005 14:01
von BartSimpson
Das wäre auch noch eine gute Idee. Daran hatte ich jetzt gar nicht gedacht:)

Weitere Spalte

Verfasst: 8. August 2005 10:50
von notebook20000
Hallo,

wie geht sowas ? Wie kann ich eine weietre Spalte hinzufügen ?

Es geht um eine ComboBox oder Listbox!!

Ich setze derzeit mit

self.listBoxKunden.insertItem(row["kundenname"])

einen Eintrag

Das ist dann der Wert der auch angezeigt wird. Wie setze ich jetzt aber eine passende ID, so das ich abfragen kann welcher Eintrag mit welcher ID gewählt wurde