Russian Qt Forum

Qt => Model-View (MV) => Тема начата: izoomer от Декабрь 18, 2006, 11:54



Название: [qt-4.2] несколько вопросов по QAbstractItemView
Отправлено: 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 прямоугольником. Почему так, покажите в коде чего не так делаю ?


Название: [qt-4.2] несколько вопросов по QAbstractItemView
Отправлено: Alexandr Az от Декабрь 18, 2006, 17:57
Мне лично кажется что на сегодняшний день непосильную задачу на себя взвалили..... Вот эдак через 2-3 месяца может быть что то и выйдет :))) Модель-вью довольно сложное устройство, хотя внешне выглядит вполне примичательно. Вы уверены что вам именно примитивами нужно прорисовать внешний вид списка???. Список сделаейте наследуя от QItemDelegate - пример - qsqlrelationaldelegate. Я понимаю - стандартные view далеко не подарок, однако посмотрите как они продуманы, не так то легко вам будет организовать вам какой нибудь dxGrid или чегой-то там. В примере chart вообще делегаты не юзаются. Наскокам там не возьмёшь, имеенно из за сложности и не всегда прозрачности исходного кода и доков............ Вьюху труднее написать чем модель.........  Короче совет, Вы лучше неспеша так потыкайте, сделайте из ListView (TableView) наследованием что надо, а потом если уж все хорошо и нуно больше функциональность, тогда уж от QAbstractItemView


Название: [qt-4.2] несколько вопросов по QAbstractItemView
Отправлено: izoomer от Декабрь 18, 2006, 18:55
та дилегаты я реализовал уже ..... все окей -прорисовывается все и для активного и для неактивного итема (через QAbstractItemDelegate::paint ....) теперь вот ломаю голову как сделать стоящий в середине листа активный итем и прокручиваемый отностительно него список.


Название: [qt-4.2] несколько вопросов по QAbstractItemView
Отправлено: izoomer от Декабрь 19, 2006, 15:00
реализвоал через scrollTo что бы в центре был выделенный итем.