Russian Qt Forum

Qt => Model-View (MV) => Тема начата: slava_d200 от Ноябрь 24, 2011, 16:12



Название: Объединение колонок QTableView
Отправлено: slava_d200 от Ноябрь 24, 2011, 16:12
Доброе время суток!
Есть ли возможность в QT
сделать так чтобы одна строка QTableView фактически состоялобы из двух строк.
ну т.е.
+------------------------------------------------------+
+туфли женские на высоком коблуке.....           +
+---------------------------+--------------+---------+
+                        цвет     |    размер    |    цена  +
+---------------------------+--------------+----------+
както так.

пробывал через "setSpan" ничего не получается, 1-я строка живет отдельно от второй, а надо чтобы это была одна строка
и выделялась как одно целое.

т.е. имел бы один индекс строки


Название: Re: Объединение колонок QTableView
Отправлено: twp от Ноябрь 24, 2011, 19:52
нужно задействовать QTreeView::setFirstColumnSpanned()


Название: Re: Объединение колонок QTableView
Отправлено: kolob от Январь 07, 2013, 22:50
Автор ТЕМУ подправь!


Название: Re: Объединение колонок QTableView
Отправлено: schmidt от Март 12, 2013, 22:18
Цитировать
сделать так чтобы одна строка QTableView фактически состоялобы из двух строк.

Строка в любом View - это один элемент. Если вам нужно визуально разбить наименование и описание товарной позиции на несколько строк - используйте делегат :) А чтобы было проще заниматься форматированием - используйте XML-разметку в данных, которые выдает модель, например:

Цитировать
<name>Дедушкины часы с кукушкой</name><price>20000</price><size>XXL</size><color>В яблоках</color>

<name>Сапоги Дедушки Мороза</name><price>1000</price><size>L</size><color>Красный металлик</color>

<name>Очки для Мартышки</name><price>10</price><size>XL</size><color>N/A</color>

...

И так по строке для каждой товарной позиции. А в делегате переопределяете метод paint() и используя, к примеру, QXmlStreamReader парсите данные и занимаетесь их отрисовкой как душе угодно.