Probleme mit QTabWidget und RemoveTab
Verfasst: 24. März 2006 23:48
Hallo,
ich bin relativ unerfahren, was QT angeht. Ich habe ein Fenster erstellt, mit dem ein Benutzer mit Ctrl+T ein Tab öffnen kann und mit Ctrl+W das aktive Tab schließen kann.
Nun wollte ich noch folgende Funktionalitäten einbauen:
- schließen aller geöffneten Tabs
- schließen aller Tabs, außer den aktuellen
Das schließen des aktuell aktiven Tabs funktioniert einwandfrei, aber leider nicht die anderen Funktionen. Mein Code schaut wie folgt aus:
Wenn ich das so ausführe, schließt er mir nicht alle Tabs, sondern vielleicht nur die Hälfte. Beim zweiten Aufruf schließt er mir wieder ein paar und beim dritten Aufruf wieder usw.
Aber es werden nicht alle Tabs beim ersten Funktionsaufruf geschlossen bzw. nur wenn es wenige sind - so ca. bei 5 Tabs werde diese 5 auch geschlossen.
Was mache ich falsch? Ich weiß echt nicht, wo das Problem liegt.
Bitte um Hilfe.
MfG, Alci.
ich bin relativ unerfahren, was QT angeht. Ich habe ein Fenster erstellt, mit dem ein Benutzer mit Ctrl+T ein Tab öffnen kann und mit Ctrl+W das aktive Tab schließen kann.
Nun wollte ich noch folgende Funktionalitäten einbauen:
- schließen aller geöffneten Tabs
- schließen aller Tabs, außer den aktuellen
Das schließen des aktuell aktiven Tabs funktioniert einwandfrei, aber leider nicht die anderen Funktionen. Mein Code schaut wie folgt aus:
Code: Alles auswählen
//schließen aller Tabs
int nCount = TabWidget->count();
for (int i = 0; i < nCount; ++i)
{
QWidget* widget = TabWidget->widget(i);
if (widget != NULL) //selbst wenn ich das weglasse, klappt es nicht
{
delete widget;
TabWidget->removeTab(i);
}
}
//schließen aller übrigen Tabs
int nCount = TabWidget->count();
for (int i = 0; i < nCount; ++i)
{
if (i = TabWidget->currentIndex())
{
QWidget* widget = TabWidget->widget(i);
if (widget != NULL)
{
delete widget;
TabWidget->removeTab(i);
}
}
}
Aber es werden nicht alle Tabs beim ersten Funktionsaufruf geschlossen bzw. nur wenn es wenige sind - so ca. bei 5 Tabs werde diese 5 auch geschlossen.
Was mache ich falsch? Ich weiß echt nicht, wo das Problem liegt.
Bitte um Hilfe.
MfG, Alci.