2014-01-14 3 views
1

У меня есть небольшой вопрос - у меня есть QMainWindow с кнопкой. Нажав на эту кнопку, я хотел бы открыть существующий QMainWindow (подробно: я хочу открыть окно с QWT Plot. Я имею в виду пример проекта обновления QWt.)Открыть существующий QMainWindow от QMainWindow

Итак, я хотел бы, чтобы существующее окно открыто на кнопке. Насколько мне удалось открыть новый QMainWindow, но что я могу сделать, чтобы увидеть MainWindow из проекта refreshtest?

void MyWindow::on_pushButton_1_clicked() 
{ 
    QMainWindow *mw = new QMainWindow(); 
    mw->show(); 
} 

ответ

0

С помощью этого кода вы получите указатель утечки после выхода из области действия метода.

Причина в том, что метод show() не блокирует. Он отправит событие в очередь цикла событий. Он будет обрабатываться асинхронно, когда цикл событий Qt «получит возможность для этого».

У вас есть несколько вариантов решения этой проблемы.

1) Qt родитель/ребенок отношение

QMainWindow *mw = new QMainWindow(this); 
            ^^^^ 

2) Сделать "МВТ" класс член MyWindow

m_mw.show(); 

и построить его в конструкторе MyWindow.

3) Используйте смарт-указатель

QSharedPointer<QMainWindow> mw = QSharedPointer<QMainWindow>(new QMainWindow()); 
Смежные вопросы