Wie deaktiviere ich einen tab in ein QTabWidget?
Ich habe eine QTabWidget
genannt tabWidget. Es hat drei tabs: "Basic", "Advanced" und "Aktuelle Struktur". Die Registerkarten werden angezeigt in der widget-in dieser Reihenfolge.
Möchte ich deaktivieren Sie die "Advanced" Registerkarte, wenn der Boolesche result
ist falsch. Ich dachte, es wäre so einfach wie mit diesem code:
bool result = false;
if (result == false)
{
tabWidget->widget(1)->setDisabled(true);
}
Leider ist dieser code nicht deaktivieren Sie die Registerkarte, bleibt es aktiviert, auch wenn ich es überprüfen:
tabWidget->tabBar()->isTabEnabled(1); //This returns true
Warum nicht die Registerkarte deaktiviert werden? Gibt es einen anderen Weg, es zu tun?
Ich bin mit Qt 5.4.0.
InformationsquelleAutor Joey Kleingers | 2015-04-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie aktivieren/deaktivieren einzelnen Registerkarten in ein QTabWidget mit der member-Funktion setTabEnabled(int index, bool enable).
Basierend auf Ihrem code-snippet, würde es so Aussehen:
tabWidget->setTabEnabled(1, result);
InformationsquelleAutor Daniel Hedberg
Können Sie nicht, nicht auf diese Weise.
Haben Sie Durchlaufen alle Kinder in der Seite und deaktivieren Sie Sie.
Etwas wie dieses:
InformationsquelleAutor HappyCactus
Könnten Sie deaktivieren Sie das layout der Registerkarte.
InformationsquelleAutor Mathias Kogler
Wenn Sie Qt-Widgets-Anwendung-Vorlage und die Registerkarte "Erweitert" ist der name
tabAdvanced
(Sie können den Namen im Objekt-Inspektor), sollte dies funktionieren:tabAdvanced
?sollte der name der Registerkarte "Erweitert" QWidget, das ist das Kind von
tabWidget
Sie können überprüfen Sie den Namen im Objekt-InspektorDer Fragesteller will nur das deaktivieren eines QTabBar tab, nicht das QTabWidget, also dein code reagiert nicht auf die OP.
Es ist nicht QTabWidget, es ist QWidget. Der Fragesteller akzeptiert, Daniel Hedberg Antwort, die scheint zu deaktivieren tabWidget Seite, mein code macht das gleiche, aber auf unterschiedliche Weise.
Wenn Sie feststellen, dass Ihre Frage nicht funktionieren, da Sie unter der Annahme, viele Dinge, es ist nicht allgemein, empfehle ich Ihnen, Lesen Sie Beantworten, wenn Sie verbessern Ihre Antwort, ich werde entfernen Sie die downvote.
InformationsquelleAutor Alexander