2014-02-20 8 views
1

В нашем целевом устройстве мы запускаем наше приложение QtE с аргументом -qws. Чтобы повернуть экран, мы указываем «-display transform: rot90» как аргумент приложения, и он работает хорошо.Qt встроенный поворот экрана внутри приложения

Однако, у нас есть возможность вращать экран внутри приложения, поэтому мы стараемся ниже API документированной в QScreen:

QWSDisplay::setTransformation(QTransformedScreen::Rot90, 0); 

Но этот API не работает. Это сообщение об ошибке на выходе консоли.

Кто-нибудь знает, что происходит об этом API? Нужно ли нам активировать что-то еще?

ответ

0

В отличие от другой документации qt, документация для встроенной части qt действительно бедна. После нескольких дней возиться с ним мне, наконец, удалось это решить.

Первое, что нужно сделать, это собрать библиотеку с опцией -qt-gfx-transformed (вместе с тем, что вам нужно).

Затем вы скомпилируете свое приложение и запустите его с помощью опции, которую вы уже использовали для активации драйвера преобразования. Я на самом деле начал так:

export QWS_DISPLAY=Transformed:Rot90:0 
./app 

В качестве теста, я осуществил это, чтобы проверить, работает ли вращение:

class X : public QObject 
{ 
    Q_OBJECT 
public : 
    X() : 
    QObject() 
    { 
    QTimer *t = new QTimer(this); 
    connect(t, SIGNAL(timeout()), this, SLOT(OnTimerEvent())); 
    t->start(2500); 
    } 

public slots : 
    inline void OnTimerEvent() 
    { 
    static int v = 0; 
    ++v; 

    QWSDisplay::setTransformation(v%4); 

    std::cout<<v<<std::endl; 
    } 
}; 

Таким образом, в слот таймера, я меняю ориентацию с QWSDisplay::setTransformation функции ,

+1

Спасибо. Вы отвечаете, возвращая меня к кодам несколько месяцев назад, я написал. Я переписываю тестовую программу, чтобы подтвердить, что вы сказали, и волшебным образом она работает! Я обнаружил, что в моем случае, если я не экспортировал QWS_DISPLAY = Transformed: Rot0 при запуске приложения, я не могу повернуть его API. Возможно, именно по этой причине я не могу успешно это сделать в своем коде. Еще раз спасибо! – wthung