ich möchte gerne ein Widget im Vordergrund lassen, bis es geschlossen wird. (Genau wie bei einem QDialog)
Wenn ich also auf das hintere Widget klicke, dann soll dies nicht in den Vordergrund gerückt werden.
Dies ist bestimmt mit einem einfachen Befehl gemacht, aber ich finde diesen einfach nicht
darkshine hat geschrieben:..
dies eignet sich super, wenn man z.B "Sind Sie sicher?" abfragen will. Bevor dann nicht auf "Ja" oder "Nein" gedrück wird, passiert nix.
Jetzt bin ich verwirrt.. genau dazu sind doch die QDialoge super geeignet:
Jetzt möchte ich noch den "roten" Schließbutton irgendwie ausblenden. Damit ich sicherstellen kann, das erst nach der "Ja" oder "Nein" Auswahl, das Fenster geschlossen wird.
Und gibt es eine Möglichkeit mein Hauptfenster in der Zeit irgendwie abzudunkeln oder unscharf zu machen? Wäre nur etwas für die Optik. Also es sollte jetzt nicht zu aufwendig werden, aber vllt gibt es ja auch hierfür einen simplen Befehl
Das geht IMHO auch wieder über die WindowFlags (Qt::WindowCloseButtonHint).. Aber mich als Anwender würde das glaube ich nicht stören. Das Schliessen eines Ja/Nein-Dialoges würde ich als "Abbrechen" interpretieren (also weder ja noch nein, sondern die Applikation nicht schliessen).
Die QDialog-Variante hat (auf diesem Mac) übrigens keine solche Bedienelemente (Min/Max/Close). Also gleich noch ein Problem, welches du mit QDialog nicht hättest..
Nachdem alles klappt.
der verschwommene Hintergrund kann mit QGraphicsBlurEffect erreicht werden.
QGraphicsBlurEffect *effect = new QGraphicsBlurEffect (this);
effect->setBlurHints(QGraphicsBlurEffect::QualityHint);
effect->setBlurRadius(5);
fenster->setGraphicsEffect(effect);
Jetzt habe ich ein neues Problem. Mein Fenster ist ca. 300 * 200 pixel groß und man kann es beliebig verschieben.
Wenn ich jetzt durch einen Button ein neues fenster z.B 50*50 groß öffne, dann soll es in der Mitte meines "Hauptfensters" angezeigt werden.
Kann ich das irgendwie realisieren?
Du machst es dir unnötig kompliziert ... nutz eine QMessageBox oder einen QDialog und setz als parent dein Fenster, dann wird es automatisch zentriert ... wenn du den QDialog mit .exec() startest ist er auch automatisch modal - die QMessageBox ist es sowieso ...