Korzystając z Qt, chciałem ostatnio sprawdzić jak odczytać odświeżanie natywne monitora na którym uruchamiana jest apka. Oczywiście sprawdziłem w specyfikacji producenta jakie odświeżanie ma mój monitor (i monitor laptopa) ale chciałem się dowiedzieć jaką metodą sprawdzić to w Qt. No i sprawdziłem. No i... trochę się zdziwiłem wynikiem. A mianowicie korzystając z tego jakże prostego kodu liczyłem że pokaże wartości spodziewane tj. 75 oraz 60 (Hz).
#include <QApplication>
#include <QScreen>
#include <QDebug>
int main(int argc, char* argv[]) {
QApplication application(argc, argv);
qDebug() << "Primary screen:" << QApplication::primaryScreen()->refreshRate();
qDebug() << "Secondary screen:" << QApplication::screens()[1]->refreshRate();
return QApplication::exec();
}
A pokazuje się coś takiego:
Primary screen: 74.9681
Secondary screen: 60.0562
Niby proste zaokrąglenie załatwia sprawę ale bardziej interesuje mnie skąd takie wartości? To producenci monitorów zaokrąglają prawdziwy Refresh Rate czy przeciwnie, to Qt wyświetla jakoś dziwacznie (błędy zaokrągleń czy co)?
Dodam, że te wartości pokazywane są za każdym razem. To nie jest tak, że z każdym uruchomieniem apki się minimalnie zmieniają. Cały czas są takie same.