У меня есть встроенное устройство, где я использую Qt 5.9 и Weston. Вестон должен использовать бэкэнд fbdev (причины выходят за рамки) и потребности
transform=90
в его разделе вывода, в противном случае экран поворачивается. Он работает нормально, но я не могу получить более качественный размер экрана в Qt. Для запуска моего приложения в полноэкранном режиме в Qt 5.8 я использовал:
auto geometry = QGuiApplication::screens().first()->geometry();
view.setGeometry(geometry);
и это было нормально. С Qt 5.9 экран сообщает о его транспонированном размере, поэтому мне придется использовать
auto geometry = QGuiApplication::screens().first()->geometry();
geometry = geometry.transposed();
view.setGeometry(geometry);
Это снова работает нормально, но приложение больше не является переносимым. Я использую его и на других платформах, все работают без корректной работы без транспонирования.
Глядя в журнал Weston, я вижу
fbdev output 480×854 px
что соответствует тому, что я сейчас получаю в Qt. Но как правильно обнаружить вращение, вызванное transform=90
?
Задача ещё не решена.
Других решений пока нет …