QDialog не появится, если только я не позвоню?

Это не работает:

void MainWindow::on_left_win_clicked()
{
Dialog *dialog1 = new Dialog(this);
dialog1->show();
return;
}

Однако это делает:

void MainWindow::on_left_win_clicked()
{
QDialog *dialog1 = new QDialog(this);
dialog1->show();
return;
}

Я просто использовал стандартный Qt Designer Form Class -> диалог с кнопками снизу

РЕДАКТИРОВАТЬ: добавлены dialog.h и dialog.cpp

dialog.h Это просто стандартный dialog.h без изменений, который был создан для меня в окне дизайнера.

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
Q_OBJECT

public:
explicit Dialog(QWidget *parent = 0);
~Dialog();

private:
Ui::Dialog *ui;
};

#endif // DIALOG_H

dialog.cpp. Единственная часть, которую я добавил здесь, была setWindowFlags, основанная на предложении в другом потоке (не помогло).

#include "dialog.h"#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent)
: QDialog(parent), ui(new Ui::Dialog)
{
ui->setupUi(this);
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::Dialog);
}

Dialog::~Dialog()
{
delete ui;
}

0

Решение

просто. если вы не сделали typedef QDialog Dialog; тогда диалог может быть неизвестен компилятору

для «легкого для понимания» кода я бы использовал оригинальные имена классов, так что любой может сказать, что диалог QDialog объект

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]