Ich habe eine konzeptionelle Frage für ein Projekt an dem ich arbeite. Es handelt sich dabei um eine embedded Applikation mit GUI welche auf über einen kleinen Touchscreen (272*480 px um genau zu sein) bedient wird.
Nun soll die Anwendung mehrere „Ansichten“ haben. Vergleichbar mit z.B. dem Hauptbildschirm, Adressbuch, Kalender etc. bei einem Mobiltelefon. Für diese Ansichten habe ich mir jeweils ein Widgets erstellt, welches ich bei Bedarf mit .showFullScreen(); anzeige und anschließend wieder unsichtbar mache.
Neben diesen Ansichten gibt es auch noch Dialoge. Der Unterschied zwischen einer „Ansicht“ und einem Dialog ist, dass der Dialog nicht den ganzen Bildschirm ausfüllt und die aktuelle „Ansicht“ im „Hintergrund auch noch zu sehen ist.
Die Widgets in der „Ansicht“ sollen allerdings nicht bedienbar sein, solange der Dialog gezeigt wird. Der Dialog soll eine art modales Verhalten haben. Allerdings soll die Anwendung im Hintergrund weiterlaufen und nicht festgehalten werden, da im Hintergrund noch Kommunikation stattfinden kann, welche einen „Ansicht“ Wechsel oder das schließen des Dialogs auslösen kann.
Um dies zu lösen, sind meine Dialog Widgets auch 272*480 aber transparent. Auf diesem transparenten Widget befindet sich dann der eigentliche Dialog. So kann nichts im Hintergrund bedient werden.
Das Konzept funktioniert soweit, auch wenn es vielleicht nicht die eleganteste Lösung ist,
Nun soll es von dieser Anwendung aber auch in einer „Simulationsversion“ geben, welche auf einen Desktop PC läuft. Also kann ich meinen Code einfach für Win32 kompilieren.
Allerdings habe ich dann mit dem oben genannten Konzept ein Problem, weil ich dort ja nicht .showFullScreen(); machen kann sondern ein Fenster mit der Auflösung 272*480 brauche. Dann habe ich bei mehreren „Ansichten“ mehrere Fenster, welche aber wie ein Fenster wirken sollen (selbe Position etc)
Deswegen habe ich eine wenig nachgeforscht und bin auf ein anderes Konzept gegangen, wo sich aber ein anderes Problem ergibt.
Ich habe auf meinem MainWindow ein QStackedWidget erzeugt. Dem habe ich meine „Ansichten“ und „Dialoge“ hinzugefügt. Mein MainWindow zeige ich bei meiner embedded Anwendunfg FullScreen an und auf dem Desktop PC in einem Fenster mit 272*480px. Bei Bedarf wechsele ich die „Ansichten“ im QStackedWidget. Soweit so gut.
Nur wenn ich einen Dialog anzeige, ist der transparente Bereicht dort grau. Dort soll aber noch die aktuelle „Ansicht“ quasi im Hintergrund zu sehen sein.
Wie kann ich das Problem lösen?
Zusatz: Sowohl Ansichten als auch Dialoge sollen weder einen Fensterrahmen haben noch verschiebbar sein. So wie man das von Mobiltelefonen kennt.
Vielen Dank schon mal an alle die die Geduld hatten bis hier zu lesen