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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGraphicView/scene, координаты  (Прочитано 2800 раз)
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 в левый верхний угол, но почему-то , происходит вот так :

Что я делаю не так? (на рисунке , вьюха - это где порог близости..)
« Последнее редактирование: Октябрь 14, 2009, 22:08 от andrewshkovskii » Записан
andrewshkovskii
Гость
« Ответ #1 : Октябрь 14, 2009, 22:08 »

bump
Записан
andrewshkovskii
Гость
« Ответ #2 : Октябрь 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//после..
 

почему такое происходит?Просто сейчас, у меня рисуется в принципе нормально, но появляется скролл на вьюхе..
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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