crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QGraphicsScene, QGraphicsScene
Гость_Гость_september123432_*_*
сообщение 17.4.2013, 7:57
Сообщение #1





Гости








    


привет всем! так как новичок, может быть и глупый вопрос...а вопрос такой . я создал форму в qt designer, создал проект и вставил туда саму форму.ui и form.h.. когда я создаю свой класс и унаследовал form.h, и написал код в свой конструкторе чтобы при вызыве конструкторе вызывал QGraphicsScene и отображал какие нибудь объекты...и получается что когда я вызваю свой класс, в QGraphicsScene объектов совсем нефига нет...
class CShow : public QWidget
{
public:
    CShow(QWidget* pwgt = 0) : QWidget(pwgt)
    {
        m_ui.setupUi(this);
        QGraphicsScene scene(QRectF(-100, -100, -300, 300));
        m_ui.graphicsView->setScene(&scene);
        QGraphicsTextItem* ptext = scene.addText("fdsdsf");
        m_ui.graphicsView->show();
    }
    Ui::Form m_ui;


но если этот код вставить к клиенстку часть программы все работает

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    CShow q;

    QGraphicsScene scene(QRectF(-100, -100, -300, 300));
    q.m_ui.graphicsView->setScene(&scene);
    QGraphicsTextItem* ptext = scene.addText("fdsdsf");
    q.m_ui.graphicsView->show();

    q.show();
    return a.exec();
}


объясните мне пожалуйста на примере почему так получается..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 17.4.2013, 11:42
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


QGraphicScene заводится на стеке и после выхода из конструктора уничтожается (см. время жизни объектов в С++).
Надо сделать scene членом класса CShow или создавать ее на куче.

Сообщение отредактировал lanz - 17.4.2013, 11:42
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.4.2024, 22:56