Russian Qt Forum
Сентябрь 23, 2024, 02:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Nokia N900, портретный режим.  (Прочитано 4308 раз)
Lunex.08
Гость
« : Июль 21, 2011, 06:46 »

Добрый день. Каким способом можно поменять ориентацию экрана на отображение в портретном режиме?
Записан
Sancho_s_rancho
Гость
« Ответ #1 : Июль 21, 2011, 08:48 »

Гугл, между прочим, дает ответы на такие простые вопросы.
Код:
enum ScreenOrientation {
        ScreenOrientationLockPortrait,
        ScreenOrientationLockLandscape,
        ScreenOrientationAuto
    };


Код:
void setOrientation(ScreenOrientation orientation)
{
#if defined(Q_OS_SYMBIAN)
    // If the version of Qt on the device is < 4.7.2, that attribute won't work
    if (orientation != ScreenOrientationAuto) {
        const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
        if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
            qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
            return;
        }
    }
#endif // Q_OS_SYMBIAN

    Qt::WidgetAttribute attribute;
    switch (orientation) {
#if QT_VERSION < 0x040702
    // Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
    case ScreenOrientationLockPortrait:
        attribute = static_cast<Qt::WidgetAttribute>(128);
        break;
    case ScreenOrientationLockLandscape:
        attribute = static_cast<Qt::WidgetAttribute>(129);
        break;
    default:
    case ScreenOrientationAuto:
        attribute = static_cast<Qt::WidgetAttribute>(130);
        break;
#else // QT_VERSION < 0x040702
    case ScreenOrientationLockPortrait:
        attribute = Qt::WA_LockPortraitOrientation;
        break;
    case ScreenOrientationLockLandscape:
        attribute = Qt::WA_LockLandscapeOrientation;
        break;
    default:
    case ScreenOrientationAuto:
        attribute = Qt::WA_AutoOrientation;
        break;
#endif // QT_VERSION < 0x040702
    };
    setAttribute(attribute, true);
}
Записан
Lunex.08
Гость
« Ответ #2 : Июль 22, 2011, 05:56 »

Этот пример я в асистанте находил, но он не работал почему то. Спасибо.
Записан
Sancho_s_rancho
Гость
« Ответ #3 : Июль 22, 2011, 07:03 »

Этот пример я в асистанте находил, но он не работал почему то. Спасибо.
Я в чудеса не сильно верю. Какая версия Qt у вас на n900?
Если что-то типа 4.6, то посмотрите сюда http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-rotation.html
« Последнее редактирование: Июль 22, 2011, 07:06 от Sancho_s_rancho » Записан
Lunex.08
Гость
« Ответ #4 : Июль 22, 2011, 16:15 »

Спасибо за ссылку, посмотрел. Все заработало. Я еще посмотрел как все сделано в чужом проекте. Скорее всего я что то просмотрел в своем проекте. Спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 21.