TableWidget Problem

Alles rund um die Programmierung mit Qt
Antworten
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

TableWidget Problem

Beitrag von Frostie »

Folgendes Problem,

ich füge in ein tablewidget zeile für zeile Daten ein:

Code: Alles auswählen

while(Daten aus Datenbank)
{

                                    newItem = new QTableWidgetItem();
			newItem->setTextColor(font1);
			newItem->setText(users);
			tableWidget_projects->setItem(count, 4, newItem);
			
			newItem = new QTableWidgetItem();
			newItem->setTextColor(font1);
			newItem->setText(date_time_out);
                          tableWidget_projects->setItem(count, 5, newItem);	
			
			
			newItem = new QTableWidgetItem();
			newItem->setTextColor(font1);
			newItem->setText(date_time_out1);
			tableWidget_projects->setItem(count, 6, newItem);	
			
			newItem = new QTableWidgetItem();
			newItem->setTextColor(font1);
			newItem->setText(status);
			tableWidget_projects->setItem(count, 7, newItem);

}
Funktioniert unter Windows ohne Probleme.

Leider macht der MAC komische Sachen,
er fängt während des einfügens das sortieren an und dann landet die neue Zeile auf einmal über einer vorhandenen,
damit werden die neuen Daten in die falsche Zeile geschrieben und damit Teilweise Überschrieben.

Was kann ich da tun??

Danke
Matthias
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Das sortieren abschalten.
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

Beitrag von Frostie »

Hm,

ist ne Lösung, schon klar.

Aber ist das ne schöne Lösung?

Danke aber trotzdem.

Gruß
Matthias
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Eine schöne Lösung wäre eine TableView und kein TableWidget.
UmmonTL
Beiträge: 16
Registriert: 8. März 2007 10:31

Beitrag von UmmonTL »

Du könntest das sortieren deaktivieren während deine Schleife durchläuft.

Code: Alles auswählen

tableWidget_projects->setSortingEnabled(false);
while(Daten aus Datenbank)
{ 
mach Einträge in der Tabelle...
}
tableWidget_projects->setSortingEnabled(true);
Ich weiß nicht ob das dann beim aktivieren gleich neu sortiert, du kannst auch explizit mit

Code: Alles auswählen

sortItems ( int column, Qt::SortOrder order = Qt::AscendingOrder );
sortieren wenn du mit dem Eintragen fertig bist.
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

Beitrag von Frostie »

Ja,

so hab ich das jetzt auch gemacht.

Danke an die Helfer!
the-d
Beiträge: 1
Registriert: 28. April 2009 12:18

Beitrag von the-d »

Hi, ist zwar der grottenalt der Eintrag, aber bei mir sehr aktuell.

Nur zur Info:
Unter Windows (VS2008, QT4.6 OpenSource) ähnliches Problem bei mir.

Zeilen ins QTableWidget (sortieren eingeschaltet) reingeschrieben, danach mit sortItems sortiert, nur Müll in der Tabelle.
Auch hier hat das obige geholfen:
Sortieren ausschalten, Tabelle füllen, sortieren und wieder setSortingEnabled(true).

Also auch von mir ein sehr spätes Danke für den Tipp ;-)
Antworten