Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: neosapient от Октябрь 23, 2009, 16:54



Название: Отобразить единый график на несколько ячеек в QTableView (QTableWidget) сразу
Отправлено: neosapient от Октябрь 23, 2009, 16:54
Хочу отобразить график результатов трассировки на несколько ячеек.
Насколько я понимаю, если использовать делегаты, то мне не получиться отображать график по всей длинне столбца.
Как лучше поступить в этой ситуации, чтобы отобразить график по всей длинне столбца?


Название: Re: Отобразить единый график на несколько ячеек в QTableView (QTableWidget) сразу
Отправлено: Пантер от Октябрь 23, 2009, 17:21
А может рядом с таблицей разместить виджет, где и рисовать график?


Название: Re: Отобразить единый график на несколько ячеек в QTableView (QTableWidget) сразу
Отправлено: baka от Октябрь 23, 2009, 20:02
Можно сделать чтоб делегат в каждой ячейке отрисовывал фрагмента графика относящегося только к этой ячейке.
Только тогда делегат должен узнавать значения точек в соседних ячейках(верхней и нижней).
Либо хранить значения точек в QList.


Название: Re: Отобразить единый график на несколько ячеек в QTableView (QTableWidget) сразу
Отправлено: BaltikS от Октябрь 23, 2009, 20:22
А можно сделать объединение ячеек и нарисовать его в одной большой :)


Название: Re: Отобразить единый график на несколько ячеек в QTableView (QTableWidget) сразу
Отправлено: neosapient от Октябрь 23, 2009, 20:36
А можно сделать объединение ячеек и нарисовать его в одной большой :)
Это наверное мой вариант, как это сделать ? Можете привести пример ?


Название: Re: Отобразить единый график на несколько ячеек в QTableView (QTableWidget) сразу
Отправлено: BaltikS от Октябрь 23, 2009, 21:44
Нет, ну графики в ячейках я не рисовал... :)... А по поводу объединения ячеек смотри QTableView::setSpan


Название: Re: Отобразить единый график на несколько ячеек в QTableView (QTableWidget) сразу
Отправлено: lit-uriy от Октябрь 23, 2009, 22:12
Мне кажется вариант baka более универсальный. И тем более, что для каждой строки, как я увидел в примере, нужна подпись значения, при объединении ячеек я думаю это создаст больше хлопот, чем чем получение значений соседних строк для рисования линий от точки до точки


Название: Re: Отобразить единый график на несколько ячеек в QTableView (QTableWidget) сразу
Отправлено: neosapient от Октябрь 26, 2009, 23:27
Мне кажется вариант baka более универсальный. И тем более, что для каждой строки, как я увидел в примере, нужна подпись значения, при объединении ячеек я думаю это создаст больше хлопот, чем чем получение значений соседних строк для рисования линий от точки до точки

Делаю QTableWidget, в который вставляю делегаты. График отрисовывается нормально.

Далее вставляю этот виджет через QGraphicsProxyWidget в сцену, но делегаты нормально не отображаются - не обновляется содержимое ячеек.
В чем может быть загвоздка?


Название: Re: Отобразить единый график на несколько ячеек в QTableView (QTableWidget) сразу
Отправлено: neosapient от Октябрь 27, 2009, 17:31
Сделал небольшой пример.
Есть диалог, в котором расположен QGraphicsView.
В нем сделал QGraphicsProxyWidget, в который вставил QTableWidget.
Первый столбец хранит значения соответствующего пика на графике.
Второй столбец - это собственно график. График рисую за счет делегата GraphDelegate.

Чтобы протестировать изменения на графике, сделал поток MyThread, который каждую секунду отсылал сигнал изменить случайную строку (вершину) графика на случайное значение.

------------
Чтобы график обновлялся автоматически, надо ставить флаг QGraphicsView::setViewportUpdateMode ( QGraphicsView::FullViewportUpdate );