Не работает метод .show() в Qt C++
Заметил что у меня не работает метод show(), работает только exec(), но он блокирует дальнейшее выполнение программы до закрытия окна.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "progress.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::encode_file()
{
Progress progress;
progress.setModal(true);
progress.show(); //Окно progress по непонятной причине не отображается. Если же меняю на exec(), то всё работает.
}
Ответы (1 шт):
Автор решения: gbg
→ Ссылка
У вас окно Progress существует только внутри метода MainWindow::encode_file()
Вам надо создавать прогресс на динамике, например так
В классе объявить Progress* prg;
В конструкторе класса prg=new Progress(this);
В теле метода - prg->show();