Russian Qt Forum
Августа 27, 2025, 20:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Список  (Прочитано 2985 раз)
sersar
Гость
« : Февраля 17, 2009, 18:46 »

Здравствуйте!

Мне необходимо сделать список как я указал на картинке. Есть строки-заголовки. И раскрывающиеся строки. Но просто вставить строку мне не подходит. Надо чтоб строчка была как таблица с ячейками. Возможно так сделать?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Февраля 17, 2009, 18:50 »

В сторону QTree*(Widget, View) + QItemDelegate смотрел?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
sersar
Гость
« Ответ #2 : Февраля 17, 2009, 19:08 »

В сторону QTree*(Widget, View) + QItemDelegate смотрел?
Смотрю ассистент в 3-х экземплярах. Не могу только сделать Грустный
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Февраля 17, 2009, 20:24 »

Все очень просто.

1) Пишешь свой делегат для QTreeWidget. Нужно наследоваться от QItemDelegate и перегрузить метод paint (будем отрисоввывать рамку вокруг айтема). Выглядеть будет это примерно так:

Код
C++ (Qt)
void TreeWidgetDelegate::paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
{
   painter->drawRect(option.rect);
   QItemDelegate::paint(painter, option, index);
}

2) Берешь QTreeWidget, устанавливаешь для него setRootIsDecorated(false) чтобы издавится от элементов раскрытия\закрытия веток дерева.
3) Устанавливаешь нужное тебе кол-во колонок - setColumnCount(...)
4) Устанавливаешь для QTreeWidget созданый тобой делегат
5) Заполняешь дерево, при этом нужно позволить редактирование ячеек. Это делается путем установки флага Qt::ItemIsEditable для айтема:

Код
C++ (Qt)
item->setFlags(item->flags() | Qt::ItemIsEditable);
« Последнее редактирование: Февраля 17, 2009, 20:27 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.034 секунд. Запросов: 19.