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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: проблема с setCentralWidget (QGraphicsView)  (Прочитано 5744 раз)
DenKa
Гость
« : Май 05, 2007, 15:28 »

Код:

QGraphicsScene scene;
//scene.setSceneRect(-300, -300, 600, 600);
scene.addText("Text");
QGraphicsView view(&scene);
view.setBackgroundBrush(QPixmap(":/Resources/cheese.jpg"));
view.show();

Отображает сцену на экране,но при
Код:

QGItem::QGItem(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
setCentralWidget(&view);
}

Центральный виджет остаётся пустым.
Что я делаю не так?
Записан
Вячеслав
Гость
« Ответ #1 : Май 05, 2007, 22:20 »

Цитата: "DenKa"
Код:

QGraphicsScene scene;
//scene.setSceneRect(-300, -300, 600, 600);
scene.addText("Text");
QGraphicsView view(&scene);
view.setBackgroundBrush(QPixmap(":/Resources/cheese.jpg"));
view.show();

Отображает сцену на экране,но при
Код:

QGItem::QGItem(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
setCentralWidget(&view);
}

Центральный виджет остаётся пустым.
Что я делаю не так?


А во втором случае view кто будет создавать ? Или откель оно береться ?
Записан
DenKa
Гость
« Ответ #2 : Май 05, 2007, 22:38 »

Во втором случае код такой же, я опустил его для краткости:
QGItem::QGItem(QWidget *parent, Qt::WFlags flags)
   : QMainWindow(parent, flags)
{
   ui.setupUi(this);
   
    QGraphicsScene scene;
    scene.setSceneRect(-300, -300, 600, 600);
    scene.addText("Text");
    QGraphicsView view(&scene);
    view.setBackgroundBrush(QPixmap(":/Resources/cheese.jpg"));   
   
    setCentralWidget(&view);
}
Ошибок никаких нет, как нет ничего и на месте центрального виджета.
Возможно QGItem долно наследовать от чего-то ещё, кроме QMainWindow
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Май 06, 2007, 10:16 »

имхо, проблема связана с временем существования объектов  scene, view. Они существуют на момент вызова конструктора. После вызова конструктора они уничтожаються. Попробуй сделать так:

Код:

QGItem::QGItem(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);

QGraphicsScene *scene = new QGraphicsScene();
scene->setSceneRect(-300, -300, 600, 600);
scene->addText("Text");
QGraphicsView *view = new QGraphicsView(scene);
view->setBackgroundBrush(QPixmap(":/Resources/cheese.jpg"));

setCentralWidget(view);
}
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
DenKa
Гость
« Ответ #4 : Май 06, 2007, 10:46 »

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


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