Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ особый виджет для данных

Автор: novichkov 25.3.2008, 6:54

Подскажите, кто знает, как проще всего реализовать виджет для следующих данных: список элементов, каждый элемент имеет строковый заголовок и свой список строковых элементов. Тип данных реализован в виде класса. Я хотел, чтобы виджет выглядел как на рис.
_________________________
| |___|__|___|___|___|__|
|____|___|__|___|___|___|__|
| |___|__|___|___|___|__|
|____|___|__|___|___|___|__|

то есть слева заголовок, а потом в виде горизонтального списка элементы.

Автор: ViGOur 25.3.2008, 9:01

Может попробовать http://crossplatform.ru/documentation/qtdoc4.3/qgridlayout.php?
Или еще какой лайоут, с вложенными в него лайоутами, а уже на них создавать те, что тебе нужно виджеты.
Или табличку, в ячейках которой создавать нужные виджеты.

Если я тебя правильно понял.

Автор: Litkevich Yuriy 25.3.2008, 11:01

Такой вариант:
Использовать в качестве основного виджета - QListWidget, в качестве QListWidgetItem выступает QStringList заполненый на основе данных твоего класса.

Автор: novichkov 25.3.2008, 19:31

Если кто подскажет, как сделать делегата для таблицы в виде списка строк (здесь сойдет горизонтальный список), то я пожалуй реализую QTableView. Проблема в том, что я не смог понять, как работать с представлением модель/вид.

Сегодня сделал свой виджет. Пока он меня мало устраивает - графика в нем так себе, да и поведение внутри QScrollArea странное. Если доделаю, может, выложу исходник.

Автор: ViGOur 26.3.2008, 8:52

Цитата(novichkov @ 25.3.2008, 19:31) *
Проблема в том, что я не смог понять, как работать с представлением модель/вид.
А что именно ты не понимаешь?
Вроде в документации все хорошо написано с примерами как и что делается: http://crossplatform.ru/documentation/qtdoc4.3/model-view-programming.php.
Правда делегаты пока еще не переведены, но думаю это не надолго. :)

Автор: Litkevich Yuriy 26.3.2008, 9:06

я уже перевожу, т.к. сам читаю :)

Автор: novichkov 26.3.2008, 19:27

Сделал виджет, о котором говорил. Размещайте его в QScrollArea, обязательно указывая QScrollArea, что виджет нужно перерисовывать.
Скрин диалогового окна и исходники внутри архива.

 RowedList.tar.gz ( 32.17 килобайт ) : 323
 

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)