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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [qt-4.2] несколько вопросов по QAbstractItemView  (Прочитано 6658 раз)
izoomer
Гость
« : Декабрь 18, 2006, 11:54 »

1.Требуется прорисовать примитивами внешний вид списка. В каком методе это делается (рамки, фон и др.) ?
2.Где можно прорисовать примитивами scrollBar у этого списка ?
3.Может есть у кого пример использования QAbstractItemView (chart из примеров не предлагать, там не понятно) ? Какие методы обязательны для переопределения в классе, создаваемом от QAbstractItemView ?

добавлено спустя 12 часов 6 минут:

 Написал вот такой код для прорисовки внешнего вида QListView :
Код:

myView::myView(QWidget *parent)
    : QListView(parent)
{
}

void myView::paintEvent(QPaintEvent *event)
{

    QStyleOptionViewItem option = viewOptions();

    QPainter painter(viewport());
    painter.save();

    QPen pen(Qt::black, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
    painter.setPen(pen);
    QRectF rectangle(option.rect.x(), option.rect.y(), option.rect.width(),option.rect.height());
    painter.drawRoundRect(rectangle,20,20);
    painter.restore();
}

но в результате получаю пустой список. Список отображается, но видимо за нарисованым в методе PaintEvant прямоугольником. Почему так, покажите в коде чего не так делаю ?
Записан
Alexandr Az
Гость
« Ответ #1 : Декабрь 18, 2006, 17:57 »

Мне лично кажется что на сегодняшний день непосильную задачу на себя взвалили..... Вот эдак через 2-3 месяца может быть что то и выйдет Улыбающийся)) Модель-вью довольно сложное устройство, хотя внешне выглядит вполне примичательно. Вы уверены что вам именно примитивами нужно прорисовать внешний вид списка???. Список сделаейте наследуя от QItemDelegate - пример - qsqlrelationaldelegate. Я понимаю - стандартные view далеко не подарок, однако посмотрите как они продуманы, не так то легко вам будет организовать вам какой нибудь dxGrid или чегой-то там. В примере chart вообще делегаты не юзаются. Наскокам там не возьмёшь, имеенно из за сложности и не всегда прозрачности исходного кода и доков............ Вьюху труднее написать чем модель.........  Короче совет, Вы лучше неспеша так потыкайте, сделайте из ListView (TableView) наследованием что надо, а потом если уж все хорошо и нуно больше функциональность, тогда уж от QAbstractItemView
Записан
izoomer
Гость
« Ответ #2 : Декабрь 18, 2006, 18:55 »

та дилегаты я реализовал уже ..... все окей -прорисовывается все и для активного и для неактивного итема (через QAbstractItemDelegate::paint ....) теперь вот ломаю голову как сделать стоящий в середине листа активный итем и прокручиваемый отностительно него список.
Записан
izoomer
Гость
« Ответ #3 : Декабрь 19, 2006, 15:00 »

реализвоал через scrollTo что бы в центре был выделенный итем.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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