Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: deMax от Апрель 18, 2014, 11:53



Название: QWidget нарисовать в двух местах
Отправлено: deMax от Апрель 18, 2014, 11:53
Есть виджет содержащий кнопки/чекбоксы/таблицы или opengl сцену, нужно вывести его на двух мониторах с разным разрешением(одинаковое содержимое), в обоих местах виджет должен быть активным а не картинкой. Как лучше поступить? Создать два экземпляра и синхронизировать их по необходимости или один экземпляр с двумя методами рисования?


Название: Re: QWidget нарисовать в двух местах
Отправлено: GreatSnake от Апрель 18, 2014, 11:57
Самый простой способ всё держать на одной сцене, которую подцепить к нескольким вью.
Виджеты на сцене размещай через QGraphicsProxyWidget.


Название: Re: QWidget нарисовать в двух местах
Отправлено: deMax от Апрель 18, 2014, 12:58
GreatSnake, а сцена поддерживает разные размеры для каждого QGraphicsView? Т.е. мне нужно чтобы автокомпоновщик сам подогнал элементы сцены под определенный размер.


Название: Re: QWidget нарисовать в двух местах
Отправлено: GreatSnake от Апрель 18, 2014, 13:05
GreatSnake, а сцена поддерживает разные размеры для каждого QGraphicsView? Т.е. мне нужно чтобы автокомпоновщик сам подогнал элементы сцены под определенный размер.
Сцена одна и размер у неё один.
А вот вью может делать масштабирование.
Через QGraphicsView::fitInView() можно вместить всё содержимое сцены во вью.


Название: Re: QWidget нарисовать в двух местах
Отправлено: deMax от Апрель 18, 2014, 13:44
Сцена одна и размер у неё один.
А вот вью может делать масштабирование.
Через QGraphicsView::fitInView() можно вместить всё содержимое сцены во вью.
Хорошая вещь, может пригодиться для создания окон просмотра. Однако при масштабировании четкие прямые линии вместе с текстом немного поплывут(таблица например). Что как бы неприемлемо.

Т.е. автокомпоновщик сам компонует под соответствующий размер. Может есть готовое решение которое синхронизирует состояние компонентов двух-трех форм между собой?


Название: Re: QWidget нарисовать в двух местах
Отправлено: deMax от Апрель 21, 2014, 11:30
Хочу создать копии объектов, а потом синхронизировать. Вопрос: виджеты с заполнением находятся в QStakedWidget(не хочу под каждую вкладку создавать отдельный ui файл), как создать отдельный виджет из ui->stakedwidget->widget[0] ?