Создайте новое окно в Qt, которое зависит от родительского окна, но появляется за пределами родительского окна. - PullRequest
0 голосов
/ 03 мая 2018

Я хочу создать журнал для моего приложения, и я хочу, чтобы он был в другом окне. Но, конечно, он должен закрываться, когда главное окно закрыто.

Главное окно создается с классом Window, который наследуется от QWidget.

Когда я создаю второе окно таким же образом и передаю в конструктор «this» как родительский, который не работает, все, что находится внутри нового окна, появляется внутри родительского окна. Но когда я ничего не передаю в конструктор нового окна, оно не закрывается при закрытии родительского окна.

1 Ответ

0 голосов
/ 11 мая 2018

Попробуйте создать второе окно, которое наследуется от QDialog.

#ifndef FORM_H
#define FORM_H

#include <QDialog>

namespace Ui {
class Form;
}

class Form : public QDialog
{
    Q_OBJECT

public:
    explicit Form(QWidget *parent = 0);
    ~Form();
private slots:

private:
    Ui::Form *ui;
};

#endif // FORM_H

и MainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include "form.h"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(showNewWindow()));
}

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

void MainWindow::showNewWindow()
{
    Form *form;
    form = new Form(this);
    form->setModal(false);
    form->show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...