Ich würde gerne einen Dialog in Qt 4.8 machen, der nicht zum übergeordneten Dialog blockiert, aber im geöffneten Zustand darüber bleibt.Qt non-blocking Overlay-Dialog
Was habe ich versucht, so weit:
Eltern
Der folgende Code macht genau das, was ich auf Gnome wollen, aber auf Windows/Mac der Dialog auf der Rückseite geht, wenn die Hauptfenster gewinnt den Fokus:
QMainWindow* window = new QMainWindow();
QDialog* dialog = new QDialog(window);
window->show();
dialog->show();
immer oben
Es besteht auch die Möglichkeit, den Dialog immer an der Spitze zu machen, aber ich glaube nicht, dass meine Anwendung so incredibl sein y wichtig für den Benutzer, dass er es immer oben sein will:
dialog->setWindowFlags(dialog->windowFlags() | Qt::WindowStaysOnTopHint);
Modal Dialog
Es besteht auch die Möglichkeit, ein Fenster modalen Dialog zu machen. Dies blockiert jedoch die Benutzerinteraktion mit dem Hauptfenster, während das Dialogfeld geöffnet ist.
dialog->setWindowModality(Qt::WindowModal);
Dock-Widget
Ein Dock-Widget macht ziemlich genau, was es sein sollte. Aber es dockt auch an und sieht nicht wie ein Dialog aus.
Wonach suche ich?
Sind Sie sicher? Ich habe den Mac noch nicht ausprobiert, aber unter Windows habe ich das immer als Code gemacht und der Dialog bleibt über dem Fenster – Fabio
Ich habe nur eine laufende Anwendung (mit viel zusätzlichem Code mit möglichen Nebeneffekten) unter Windows getestet und momentan kein Windows-System verfügbar. Aber auf Mac läuft das sicher nicht. –