Название: Как перехватить поворот КПК на 90 градусов (на бок) и развернуть GUI ? Отправлено: neosapient от Июля 14, 2009, 21:26 Здравствуйте.
Есть коммуникатор под управлением WinCE 6.1. Хочется сделать так, чтобы повернув приложение на бок, весь интерфейс повернулся на 90 градусов (на бок) . Поэтому, интересует: - как перехватить этот самый поворот на бок ? - как заставить все стандартные элементы управления повернуться на нужные 90 градусов ? Название: Re: Как перехватить поворот КПК на 90 градусов (на бок) и развернуть GUI ? Отправлено: neosapient от Июля 17, 2009, 17:04 Пытаюсь разобраться со вторым вопросом
Цитировать как заставить все стандартные элементы управления повернуться на нужные 90 градусов ? Итак решил работать со связкой QDialog <-> QGraphicsView <-> QGraphicsScene <-> QGraphicsProxyWidget. Для этого решил реализовать промежуточный класс PdaDialog, в котором реализован метод rotate Код: void QxPdaDialog::rotate(int isRotate) Если этот метод вызвать в конструкторе класса QxPdaDialog, то не работает растягивание окна. (http://pic.ipicture.ru/uploads/090717/cXDbRQcw36.jpg) (http://ipicture.ru/) Если этот метод вызвать в каком либо другом месте (например в main() ), то все вообще "расползается". (http://pic.ipicture.ru/uploads/090717/bYWJAWsj32.jpg) (http://ipicture.ru/) Как мне сделать правильное растягивание окон сцены и повернутого виджета диалога? Название: Re: Как перехватить поворот КПК на 90 градусов (на бок) и развернуть GUI ? Отправлено: Авварон от Июля 17, 2009, 19:22 ну как минимум сцену нужно добавить в layout
Код: view = new QGraphicsView ( scene, this ); Название: Re: Как перехватить поворот КПК на 90 градусов (на бок) и развернуть GUI ? Отправлено: lit-uriy от Июля 18, 2009, 04:45 neosapient, посмотри у тролей в лаборатории: http://labs.trolltech.com/blogs/2009/07/15/digital-clock-in-a-phone/
"I included three animation effects: Slide, Flip, and Rotate (all in 400 lines of Qt/C++ code)." Название: Re: Как перехватить поворот КПК на 90 градусов (на бок) и развернуть GUI ? Отправлено: neosapient от Июля 18, 2009, 14:19 Здравствуйте.
Реализован класс QxPdaDialog. В конструкторе создается графическая сцена, а также тестовый виджет с надписями по углам: "Up Left", "Up Right", "Down Left", "Down Right". Кроме того в классе присутствует реакция на открытие панели клавиатуры, как это сделано в примере SipDialog. Для тестирования, повесил обработчик на клавиатуру - поэтому при нажатии на клавиши изображение "ворочается" Собрал проект под коммуникатор и под винду, выглядит так как я хочу: Код: int main(int argc, char *argv[]) (http://pic.ipicture.ru/uploads/090718/thumbs/coDVWlWC2l.jpg) (http://ipicture.ru/Gallery/Viewfull/21062872.html) ---------------------- В классе QxPdaDialog реализован метод setWidget(). Этот метод предназначен, чтобы загружать другие виджеты вместо тестового. Сделал дилог (QDialog взятый из ресурсов ui) с надписями по углам: "Верхний левый", "Верхний правый", "Нижний левый", "Нижний правый". Изображение QDialog`a в сцене имеет заголовок("шапку"). Собрал проект под коммуникатор и под винду. Под винду выглядит нормально, заголовок над диалоговым окном спрятан вне видимой части экрана. А вот при сборке под коммуникатор эта "шапка" виднеется и портит всю графику. Как спрятать эту шапку для QDialog, чтобы всё выглядело эстетично ? К слову, пробовал давать запускать с типом Qt::ToolTip - не помогает. Вот что выходит Код: int main(int argc, char *argv[]) (http://pic.ipicture.ru/uploads/090718/thumbs/R0rLa3fu0Y.jpg) (http://ipicture.ru/Gallery/Viewfull/21062882.html) Как спрятать заголовок для QDialog, чтобы всё выглядело эстетично ? Название: Re: Как перехватить поворот КПК на 90 градусов (на бок) и развернуть GUI ? Отправлено: neosapient от Июля 18, 2009, 15:16 neosapient, посмотри у тролей в лаборатории: http://labs.trolltech.com/blogs/2009/07/15/digital-clock-in-a-phone/ lit-uriy, спасибо, но я хочу повернуть всё диалоговое окно на 90 градусов. "I included three animation effects: Slide, Flip, and Rotate (all in 400 lines of Qt/C++ code)." Сейчас иду с следующем направлении: встраиваю диалог как виджет в графическую сцену, так как он не должен терять своей функциональности. Но при портировании на КПК остается "шапка" - заголовок диалогового окна ???. Название: Re: Как перехватить поворот КПК на 90 градусов (на бок) и развернуть GUI ? Отправлено: silvansky от Марта 16, 2010, 19:32 попробуй наследовать не диалог, а виджет
|