LINUX.ORG.RU

Ответ на: комментарий от Alex_Golubev

В рантайме — нет.

https://stackoverflow.com/questions/582185/how-to-disable-landscape-mode-in-a...

QML(?)

transform: Rotation {
    angle: 180
    origin.x: root.width / 2
    origin.y: root.height / 2
}

Qt(?)

QGraphicsScene *scene = new QGraphicsScene();
QGraphicsView *view = new QGraphicsView(parent);
view->setGeometry(0,0,X,Y); // actual Display size
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
QGraphicsProxyWidget *proxy = scene->addWidget(this);
view->setScene(scene);
view->show();
view->rotate(90);

Короче гугли: qt change screen orientation

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 2)
Ответ на: комментарий от Alex_Golubev

Поменять что? Ориентацию всей картинки в мониторе или ориентацию отображаемых элементов в окне твоего приложения (которое, возможно, растянуто на весь экран, а возможно нет)?

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 2)
Ответ на: комментарий от Alex_Golubev

Как повернуть картинку на кутэ я показал разных способов выше. Сменить ориентацию экрана чисто из кутэ нельзя. Можно лишь вызвать что-то внешнее, что занимается установкой ориентации. Но мой либастрал уже сломался — передаю тебя в руки EXL.

deep-purple ★★★★★ ()
Ответ на: комментарий от Alex_Golubev

Qt 4.8.7 из buildroot рисует во фреймбуффер.

Для Qt 4 есть возможность перевернуть изображение, если добавить в command line запускаемой программы строку -display transformed:Rot270, после параметра -qws, или переменная окружения QWS_DISPLAY.

Для Qt 5 по идее есть переменная окружения QT_QPA_EGLFS_ROTATION, в которой можно сделать аналогичное, но там нет оконного сервера QWS.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от Alex_Golubev

Сделал вот так

Ну так сделай нормально.

export QWS_DISPLAY="-display transformed:Rot180"

P.S. Вот именно по этой причине говнистый Bash и прочие подобные Shell’ы должны умереть и уйти из мира Linux.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от Alex_Golubev

Он не будет переворачиваться в рантайме, а только после холодного запуска из терминала где эта переменная окружения прописана.

И -display, насколько я помню, нужно убрать из переменной окружения:

export QWS_DISPLAY="Transformed:Rot180"

P.S. лучше не переменной делать, а просто запускать приложение как:

./app -qws -display transformed:Rot180

P.P.S. Чтобы всё работало Qt 4 обязательно должен быть собран с опцией -qt-gfx-transformed.

EXL ★★★★★ ()
Ответ на: комментарий от rumgot

Если тебе нужно ВСЕ ИЗОБРАЖЕНИЕ МОНИТОРА ПОВЕРНУТЬ, то это можно сделать через настройки графического окружения.

Можно и монитор перевернуть, в конце-то концов. Был тут как-то такой товарищ, кто за вертикальными мониторами сидел.

Zhbert ★★★★★ ()
Ответ на: комментарий от Zhbert

Был тут как-то такой товарищ, кто за вертикальными мониторами сидел.

Видимо он буквально понял рекомендацию делать функции такой длины, чтобы они вмещались в высоту монитора.

rumgot ★★★★★ ()
Ответ на: комментарий от rumgot

Вот честно признаюсь EXL не знаю что такое ./app -qws куда это нужно написать. Ранее программировал в другой среде делал системы реального времени. Потом решил освоить ядро линукс, вроде уже стал понимать как работать c dts конфигурировать ядро. Перешел на qt creator и вот тут еще не освоился. Поэтому прошу рассказать что вы понимаете под ./app -qws.

Alex_Golubev ()
Ответ на: комментарий от Alex_Golubev

Это то, как запускается у вас приложение. У вас ведь там нет X.Org, а Qt4 рисует во фреймбуффер.

P.S. Из-за того, что вы ответили не на моё сообщение, а на сообщение другого участника беседы, я пропустил ваш ответ и отвечаю лишь спустя несколько дней.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

Экран повернулся. Сделал следующие: В buildroot Target packages → Graphic libraries and applications (graphic/text) → Qt (obsolete) → Graphics drivers →

  • Transformed

    В qt creator прописал в Arguments -qws -display transformed:Rot180

    При нажатие на RUN программа запустилась и перевернулась.

Alex_Golubev ()