Название: Как установить виджет в заголовок QTreeView Отправлено: Gryz от Апрель 02, 2007, 13:10 Кто-нибудь сталкивался с подобной проблемой?
Хочу в заголовок вместо обычных кнопок QComboBox запихнуть. Название: Как установить виджет в заголовок QTreeView Отправлено: SABROG от Апрель 02, 2007, 13:13 В Header ?
Название: Как установить виджет в заголовок QTreeView Отправлено: Gryz от Апрель 02, 2007, 13:17 Да. В то, что возвращает метод horizontalHeader ()
Название: Как установить виджет в заголовок QTreeView Отправлено: SABROG от Апрель 02, 2007, 13:33 Я думаю реально, т.к. хидеры это те же QStandartItem.
В методах createEditor и setEditorData надо по каким-то параметрам узнать что это именно хидер и создать соответствующий combobox. Для теста, как временное решение, можно попробывать заюзать метод QStandardItemModel QStandardItem * itemFromIndex ( const QModelIndex & index ) const Как-то так: Код:
Или так: Код:
Название: Как установить виджет в заголовок QTreeView Отправлено: Gryz от Апрель 02, 2007, 14:52 Что-то я не пойму, каким образом QHeaderView связан с QStandartItem.
методы createEditor и setEditorData - какого объекта? Название: Как установить виджет в заголовок QTreeView Отправлено: SABROG от Апрель 02, 2007, 15:08 Из Assistanta:
Цитировать The header gets the data for each section from the model using the QAbstractItemModel::headerData() function. You can set the data by using QAbstractItemModel::setHeaderData(). Т.е. данные беруться из модели, а у модели каждый элемент есть QStandardItem. Методы createEditor и setEditorData должны быть в твоем классе, который ты унаследовал от QItemDelegate В любом случае я не могу сказать будет это работать или нет. Название: Как установить виджет в заголовок QTreeView Отправлено: Gryz от Апрель 02, 2007, 15:23 Цитата: "SABROG" а у модели каждый элемент есть QStandardItem. Мне кажется, что в общем случае это не так. Название: Как установить виджет в заголовок QTreeView Отправлено: SABROG от Апрель 02, 2007, 15:30 Цитата: "Gryz" Цитата: "SABROG" а у модели каждый элемент есть QStandardItem. Мне кажется, что в общем случае это не так. В общем я попробывал такое сделать, проблема в том, что в классе делегата класс модели передается QAbstractItemModel, в то время как у TreeView может стоят класс QStandardItemModel, у абстрактной модели нет методов для определения хидера, а как к стандартной корректно достучаться я не знаю. Название: Как установить виджет в заголовок QTreeView Отправлено: Gryz от Апрель 03, 2007, 13:19 Проблему решил, отнаследовавшись от QHeaderView и создавая в нужном месте заголовка экземпляры QComboBox.
в конструкторе: Код:
добавлено спустя 2 часа 45 минут: Остается непонятным, как отслеживать изменение первого видимого столбца таблицы... |