Jak zrobi dobrze zapamiętywanie pozycji okien

0

Filozoficzne pytanie:

Użytkownik używa mojej aplikacji na jakimś laptopie i ma trzy ekrany
A - laptop (FHD)
B - monitor zewnętrzny (FHD)
C - monitor ultra panoramiczny (UWQHD 3440 x 1440)

Aplikacja się zamyka, zapamiętuje pozycję okna
Użytkownik zmienia konfiguracje monitorów np. pracuje w samolocie ;)
I włącza ponownie aplikację, trzeba się jakoś odnaleźć w nowej konfiguracji monitorów

Potem wraca ponownie do biura i znowu pracuje na trzech monitorach

Jak to ogarnąć ? Tworzyć klucz pod którym zapisujemy z listy monitorów i dla każdej kombinacji mieć inne ustawienia ?

Ostatnio popełniłem proste zapisywanie pozycji okien i zaczeły sie problemy , bo okna pokazują sie na pasku Windows ale nie widać okna

5
  1. Przy uruchamianiu odczytać z systemu konfigurację monitorów. Taka konfiguracja składa się z listy ekranów, a każdy ekran ma wysokość, szerokość, a także położenie względem górnego lewego narożnika pierwszego ekranu.
  2. Jeżeli dana konfiguracja jest w konfiguracji aplikacji, odczytać konfigurację okna zapisaną dla danej listy. Jeżeli nie ma danej konfiguracji monitorów, przyjąć domyślne położenie i wielkość okna aplikacji.
  3. Przy zamykaniu programu odczytać z systemu konfigurację monitorów. Jeżeli nie ma danej listy monitorów w pliku aplikacji, to dopisać daną listę i konfigurację okna aplikacji. Jeżeli już jest, to zaktualizować zapisaną konfigurację okna.

Każdy monitor jest definiowany przez cztery liczby (pozycja X, pozycja Y, szerokość, wysokość), więc listę monitorów można zamienić na tekst, w którym są liczby podzielone dowolnym znakiem innym niż cyfra. Jeżeli są dwa monitory, Ilość liczb w tym tekście będzie czterokrotnością liczby ekranów na danym komputerze.

1

Robi się to Bracie @Marius.Maximus poprzez QWidget::restoreGeometry oraz QMainWindow::restoreState
W twoim wypadku należałoby połączyć te ustawienia z danym typem monitora, i rzecz jasna mieć jakieś ustawienie defaultowe.

1 użytkowników online, w tym zalogowanych: 0, gości: 1