Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: andrewshkovskii от Октябрь 14, 2009, 15:22



Название: QGraphicView/scene, координаты
Отправлено: andrewshkovskii от Октябрь 14, 2009, 15:22
Есть некоторое не понимание взаимосвязи систем координат item,model,view.
Вот такой вот код:

Код:
void Model::setUpGraphicScene(QStandardItemModel *model,int size)
{
    static QFont font("Times",9);
    static int x = - this->vrptr->geometry().width()/2;//this->vrptr -указатель на QGraphicView
    int y= - (this->vrptr->geometry().height()/2);
    QGraphicsItem * item;
    static QFontMetrics fn (font);
    static int yGrow = fn.height() -3;
    this->visualResultModel->clear();
    item= visualResultModel->addText(model->horizontalHeaderItem(0)->text(),font);
    item->setPos(x,y);
    for(int i=1;i<size;++i)
    {
        item= visualResultModel->addText(model->horizontalHeaderItem(i)->text(),font);
        item->setPos(x,y+yGrow);
        y=item->pos().y();
    }
}
Вроде как должен начать добавлять item в левый верхний угол, но почему-то , происходит вот так :
(http://img245.imageshack.us/img245/4434/18943663.jpg)
Что я делаю не так? (на рисунке , вьюха - это где порог близости..)


Название: Re: QGraphicView/scene
Отправлено: andrewshkovskii от Октябрь 14, 2009, 22:08
bump


Название: Re: QGraphicView/scene, координаты
Отправлено: andrewshkovskii от Октябрь 15, 2009, 00:00
Код:
void Model::setUpGraphicScene(QStandardItemModel *model,int size)
{
    qDebug() << this->vrptr->rect();
    qDebug() << this->visualResultModel->width() << this->visualResultModel->height();
    static QFont font("Times",9);
    int x = -this->vrptr->geometry().width();
//    x+=113;
    int y= - (this->vrptr->geometry().height()/2);
    QGraphicsItem * item;
    static QFontMetrics fn (font);
    static int yGrow = fn.height() -3;
    this->visualResultModel->clear();
    item= visualResultModel->addText(model->horizontalHeaderItem(0)->text(),font);
    item->setPos(x,y);
    for(int i=1;i<size;++i)
    {
        item= visualResultModel->addText(model->horizontalHeaderItem(i)->text(),font);
        item->setPos(x,y+yGrow);
        y=item->pos().y();
    }
    qDebug() << this->vrptr->rect();
    qDebug() << this->visualResultModel->width() << this->visualResultModel->height();
}
Цитировать
QRect(0,0 607x277) //rect вьюхи до отображения текста
0 0//ширина и высота модели до отображения
QRect(0,0 607x277) //после
716 258//после..
 

почему такое происходит?Просто сейчас, у меня рисуется в принципе нормально, но появляется скролл на вьюхе..