ich habe bei meiner Anwendug ein QMainWindow welches beim Start als Konfigurationsbereich dient (man könnte es sich als eine Art Login vorstellen) und erst nachdem die Anfangseinstellungen vorgenommen wurden wechselt das Fenster auf die Hauptseite von einem StackWidget. Zusätzlich sollen dann diverse Menus/Menupunkte eingeblendet werden je nachdem was der Nutzer eingestellt hat. Das funktioniert auch schon soweit, die Menus sind am Anfang größtenteil mit setVisible(false) ausgeblendet.
Wenn sie jedoch wieder eingeblendet werden sollen werden die Menus gleichzeitig alle geöffnet, der Nutzer muss jedes einzeln mit einem Mausklick schliessen. Wodurch kommt das, wie lässt sich es vermeiden?
Klar könnte ich die Menus alle deaktivieren, aber als Nutzer würde ich mich etwas wundern wenn ich von sechs Menus nur eins anwählen kann und dort auch nur die Hälfte der Unterpunkte. Und wie gesagt werden auch im Laufe des Programms nie alle Menupunkte auswählbar, es ist einfach unschön überall deaktivierte Menupunkte zu haben.
hide() und show() sind in der API nicht zu finden. Auch ein kurzer Test sagt mir nur dass die Methoden nicht bekannt sind. Es würde mich aber auch wundern wenn die etwas anderes machen als setVisible.
UmmonTL hat geschrieben:hide() und show() sind in der API nicht zu finden. Auch ein kurzer Test sagt mir nur dass die Methoden nicht bekannt sind. Es würde mich aber auch wundern wenn die etwas anderes machen als setVisible.
QMenu erbt von QWidget, hide() und show() sind Methoden von QWidget, ergo auch in QMenu verfügbar.
Setze deine QActions auf visible und ersetz setVisible( true ) durch show() und setVisible( false ) durch hide() bei den menus, ob es klappt.
Stimmt, für QMenu gibt es die Methoden hide() und show(), funktionieren leider auch nicht wie gewünscht.
Allerdings hat sich mein Problem jetzt etwas geändert, ich weiß nicht ob ich vorher blind war (wahrscheinlich ist es so) oder was passiert ist aber die Menus lassen sich nicht ausblenden, nur die Unterpunkte. Mit hide() / show() bzw. setVisible(true / false) lassen sich die QMenu's öffnen und schliessen wie es aussieht aber nicht vor dem User verstecken.
D.H. mein ursprüngliches Problem scheint mit den setVisible - Aufrufen auf den Menus zusammenzuhängen, lasse ich diese weg so bleiben die Menus geschlossen. Dafür weiß ich jetzt nicht mehr wie ich diese Menus vor dem Nutzer verstecken kann.