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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать такое![РЕШЕНО]  (Прочитано 8636 раз)
developer
Гость
« : Июль 28, 2009, 12:25 »

http://python.developpez.com/cours/pygtktutorial/php/pygtkfr/figures/treeviewcolumn1expander.png

Нужно сделать такой QTreeView (именно виев). Чтобы в первой колонке отображались id, а именно дерево отображалось во второй колонке.
« Последнее редактирование: Июль 28, 2009, 14:52 от developer » Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #1 : Июль 28, 2009, 12:30 »

Точно не знаю но по идее дилегаты тебе в помощь.
Записан
developer
Гость
« Ответ #2 : Июль 28, 2009, 13:05 »

Не думаю что делегаты здесь помогут  Грустный
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Июль 28, 2009, 13:18 »

nак колонки можно же местами переставлять, не?
Записан
developer
Гость
« Ответ #4 : Июль 28, 2009, 13:40 »

Возможно, тогда как?Непонимающий
Или где ето есть в ассистанте
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #5 : Июль 28, 2009, 13:47 »

Посмотри стандартный example там несовсем то , но может поможет.

QtDir\examples\itemviews\simpletreemodel\
Записан
developer
Гость
« Ответ #6 : Июль 28, 2009, 14:03 »

Уже смотрю вовсю там нет даже намека на ето.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #7 : Июль 28, 2009, 14:09 »

есть int columnViewportPosition ( int column ) const, а вот ф-ию ставящую ее по ходу нету... недоделка?
Записан
developer
Гость
« Ответ #8 : Июль 28, 2009, 14:52 »

Решил!!!!!

treeView = new QTreeView();
treeView->header()->moveSection(from, to);
Записан
developer
Гость
« Ответ #9 : Июль 28, 2009, 14:53 »

Авварон спасибо за наводку
Записан
evd
Гость
« Ответ #10 : Январь 09, 2012, 17:47 »

Возникла такая же задача.
Похоже перемещение колонок единственное решение (пытался сделать через указание колонки с деревом в методах rowCount и parent).
Но при перемещении колонок неверно работает выделение (см. скриншот)
Как заставить выделять строку полностью?
Пытался через делегат:
Код:
void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
    if ((index.column()==0) && ( option.state & QStyle::State_Selected ))
    {
        QStyleOptionViewItemV4 opt = option;
        initStyleOption(&opt, index);

        const QWidget *widget = opt.widget;
        opt.rect.setLeft(((QTreeView*)widget)->columnViewportPosition(0));
        QStyle *style = widget ? widget->style() : QApplication::style();
        style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, widget);
    } else QStyledItemDelegate::paint(painter, option, index);
}

Но в этом случае и текст отображается в начале колонки, поверх треугольника, да и стык видно (см. скриншот 2)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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