Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: onecupofspam от Декабрь 02, 2010, 19:17



Название: Кастомное диалоговое окно
Отправлено: onecupofspam от Декабрь 02, 2010, 19:17
Господа, с QT работаю пару дней, поиском ответа не нашел.

Пишу приложение под мобильную платформу.
Основная форма - класс на основе QGraphicsView.
В нем есть несколько управляющие элементов, которые должны вызывать диалоговое окно с нестандартным интерфейсом.
Это окно из себя представляет просто прямоугольник с наложенной текстурой и несколькими кнопками (опять же кастомными) на нём.
В будущем в этом окошке могут появиться некие эффекты (анимация).

На основе какого класса создать это окно?
QDialog - насколько я понял толком не дает возможности его кастомизировать.
Или делать его тоже на основе QGraphicsView?

На данный момент я делаю это наследуясь от QGraphicsWidget на который кладу QGraphicsScene, на которой размещаю свои кнопки.
Кнопки делаю полями данного класса, при нажатии посылаю соответствующие сигналы.

И еще, посоветуйте где можно посмотреть подробные описания классов Qt с их предназначением и наиболее частыми ситуациями использования.
Документация - это замечательно, она классная, но чтобы от неё была польза, нужно знать документацию какого класса тебе надо изучить, а тыкать во все более-менее похожее на то что тебе надо в AllClasses удовольствие не из лучших.

Спасибо.

UPDATE:
Тьфу, QGraphicsWidget наоборот, кидается на сцену, а не сцена на него.
Тогда как вариант окошко кидать на основную сцену с заведомо большей Z-координатой (при этом для красоты можно затемнить все что под ним).
Но вопрос остается - на основе чего делать это окно? Чтобы можно было использовать текстуру для фона, и можно было кидать subwidgets?


Если я придумываю велосипед, то ткните в сторону готового)


Название: Re: Кастомное диалоговое окно
Отправлено: crossly от Декабрь 03, 2010, 10:01
Цитировать
На данный момент я делаю это наследуясь от QGraphicsWidget на который кладу QGraphicsScene, на которой размещаю свои кнопки.
Кнопки делаю полями данного класса, при нажатии посылаю соответствующие сигналы.
все правильно вы делаете...


Название: Re: Кастомное диалоговое окно
Отправлено: onecupofspam от Декабрь 03, 2010, 10:19
Гм, но насколько я понял из документации, QGraphicsWidget - это класс для объектов которые помещаются НА сцену, а не сцена в них.
А если я не могу поместить на него сцену, то как задать фон, как разместить кнопки и прочее? Только лишь реализовывая paint()?


Название: Re: Кастомное диалоговое окно
Отправлено: crossly от Декабрь 03, 2010, 10:29
а зачем вам сцену кидать на QGraphicsWidget??


Название: Re: Кастомное диалоговое окно
Отправлено: onecupofspam от Декабрь 03, 2010, 11:21
Чтобы к ней применить Brush с нужной текстурой, чтобы на неё кинуть кнопки, а в будущем на ней реализовывать анимацию.


Название: Re: Кастомное диалоговое окно
Отправлено: crossly от Декабрь 03, 2010, 11:26
если вы хотите поместить обычный виджет на QGraphicsScene используйте QGraphicsProxyWidget


Название: Re: Кастомное диалоговое окно
Отправлено: onecupofspam от Декабрь 03, 2010, 11:37
Кажется мы не понимаем друг друга)
Окно моего приложения - это QGraphicsView с QGraphicsScene. к этой сцене применены свои текстуры, свои subwidgets и т.п.
При взаимодействии с некоторыми подвиджетами я хочу вызывать новое окошко. У него свое особое оформление, свои подвиджеты.
Поэтому я думал, что возможно к нему необоходимо прикрепить некую новую сцену, оформление которой так же настроить.

Проблема в том, что я не могу сделать это окошко в виде некоторого виджета (так как на виджет нельзя поместить сцену).
Тогда как его реализовывать? тоже как QGraphicsView? Или отказаться от дополнительной сцены и реализовать его в виде некоторого виджета, задавая оформление в paint() ?


Название: Re: Кастомное диалоговое окно
Отправлено: crossly от Декабрь 03, 2010, 12:22
последний вариант наверное буде предпочтительнее


Название: Re: Кастомное диалоговое окно
Отправлено: onecupofspam от Декабрь 04, 2010, 22:58
Из каких соображений?