QT rozdzielczość okienka zależna od rozdzielczości pulpitu

0

Witam, mam mały problem z QT, otóż problemem są domyśle rozmiary okienek nadawane w QT desinger, np na komputerze na którym mam rozdzielczość pulpitu 1920x1080 rozmiar okienka (przy uruchomieniu aplikacji ) 400x300 jest odpowiedni, ale gdy np używam komputera z rozdzielczością pulpitu 4k, to chciałbym, żeby moje okienko przy włączeniu aplikacji od razu miało zwiększony rozmiar np. 600x400 wie jak takie coś ustawić, żeby w zależności od rozdzielczości ekranu ostawiać różne rozmiary elementów? Zależało by mi , żeby to zrobić od razu w QT desingerze bez zbędnego kodu.

Dziękuję za Pomoc.

0

Nie znam sposobu w designerze, ale zrobienie tego w konstruktorze widgetu jest trywialne.

0

Designerem też generujesz kod więc i tak go tworzysz czy ty ręcznie czy wyklikując ;)

0

Witam, Zrobiłem jak pan poradził, dodałem do każdego okienka metodę która ustawia nowy rozmiar okna bazując na rozdzielczości pulpitu, niżej daję kod gdyby ktoś potrzebował

void QT_ETH_SELECTOR_DIALOG::centerAndResize()
{
    /*Resize Window acording to Desktop Resolution*/
    QSize availableSize = qApp->desktop()->availableGeometry().size(); /*Desktop resolution*/
    U32 width  = availableSize.width()*0.25; /*Multiply by factor*/
    U32 height = availableSize.height()*0.25;
    QSize newSize( width, height );
    /*Set new Geometry*/
    setGeometry(
        QStyle::alignedRect(
            Qt::LeftToRight,
            Qt::AlignCenter,
            newSize,
            qApp->desktop()->availableGeometry()
        )
    );
    this->topLevelWidget(); /*Put Window to top of the screen*/
}

0
Software napisał(a):

Witam, Zrobiłem jak pan poradził

To jest forum programistów tutaj wszyscy jesteśmy na "ty" ;)

0
  1. QT_ETH_SELECTOR_DIALOG to bardzo dziwna nazwa klasy.

  2. trzeba byłoby przetestować ten kod na komputerze z kilkoma monitorami: czy to availableSize odnosi się do aktualnego monitora (na którym wyświetlane jest okno programu) czy do wszystkich łącznie? z dokumentacji Qt to jednoznacznie nie wynika.

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