Название: не могу использовать sceneRect Отправлено: mokynis от Март 05, 2010, 09:40 В Qt Creator'е создается Dialog, на него кладу QGraphicsView. Если задаю размеры scene непосредственно, то все работает, а если пытаюсь использовать свойства GraphicsView,
выдается ошибка Цитировать The program has unexpectedly finished. Вот текст: Цитировать Dialog::Dialog(QWidget *parent) При этом в дизайнере у объекта graphicsView в свойстве sceneRect задавал те же параметры, что и в тексте. Что-то я накосячил. Что именно, не подскажете?: QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); //так все в порядке QGraphicsScene *scene=new QGraphicsScene; scene->setSceneRect(0,0,300,270); ui->graphicsView->setScene(scene); QGraphicsLineItem* pLineItem=scene->addLine(20,15,50,80,QPen(Qt::red,2)); //а вот так не работает // QGraphicsLineItem* pLineItem=ui->graphicsView->scene()->addLine(20,15,50,80,QPen(Qt::red,2)); pLineItem->setFlags(QGraphicsItem::ItemIsMovable); } Название: Re: не могу использовать sceneRect Отправлено: BRE от Март 05, 2010, 09:48 Не понятно, какие именно строки комментируешь в случае "Не работает".
Покажи, как точно выглядит конструктор в этом случае. Название: Re: не могу использовать sceneRect Отправлено: mokynis от Март 05, 2010, 09:55 выше-рабочий вариант. А вот не рабочий:
Цитировать Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); //так все в порядке // QGraphicsScene *scene=new QGraphicsScene; // scene->setSceneRect(0,0,300,270); // ui->graphicsView->setScene(scene); // QGraphicsLineItem* pLineItem=scene->addLine(20,15,50,80,QPen(Qt::red,2)); //а вот так не работает QGraphicsLineItem* pLineItem=ui->graphicsView->scene()->addLine(20,15,50,80,QPen(Qt::red,2)); pLineItem->setFlags(QGraphicsItem::ItemIsMovable); } Название: Re: не могу использовать sceneRect Отправлено: BRE от Март 05, 2010, 09:58 Ну так сцену ты не создал и не установил в view.
Код
Название: Re: не могу использовать sceneRect Отправлено: mokynis от Март 09, 2010, 07:13 а что же тогда задает параметр sceneRect у QGraphicsView? Я в дизайнере задаю размеры сцены. Я так понял, что используя GraphicsView, я сразу с ним использую некую сцену по умолчанию
Цитировать This property holds the area of the scene visualized by this view . Или я не так понял?Название: Re: не могу использовать sceneRect Отправлено: lit-uriy от Март 13, 2010, 12:36 >>This property holds the area of the scene visualized by this view
"Это свойство содержит область сцены, которая отображается этим представлением." |