0

これは動作しません:

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 with Buttons Bottom を使用しました

編集: 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;
}
4

1 に答える 1