بستن فرم



  • من دوتا فرم دارم فرم دوم را نمایش میدم و میخوام فرم اولم را ببندم این کدها رو نوشتم
    @
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include "mydialog.h"

    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    }

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

    void MainWindow::on_pushButton_clicked()
    {

        myDialog mdialog;
        mdialog.exec();
    

    }
    @

    @
    #include "mydialog.h"
    #include "ui_mydialog.h"
    #include "mainwindow.h"

    myDialog::myDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::myDialog)
    {
    ui->setupUi(this);

    MainWindow mainWindow;

    mainWindow.close();
    }

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

    @



  • p{direction: rtl; text-align:right}. اولن MainWindow و myDialog خطای Circular Inclution دارن. حداقل باید یکی‌شو Forward Declare کنی.

    p{direction: rtl; text-align:right}. دوم این که توی سازندهٔ یک کلاس مشتق‌شده از کلاس QWidget یا QMainWindow نمی‌تونی ببندی‌ش.



  • @
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include "mydialog.h"

    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    }

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

    void MainWindow::on_pushButton_clicked()
    {
    myDialog *mdialog=new myDialog(); //تبدیل میشه به پوینتر
    mdialog->show();

        this->close(); //فرم خودش رو میبنده
    

    }
    @
    @
    #include "mydialog.h"
    #include "ui_mydialog.h"
    //#include "mainwindow.h" احتیاجی نیست

    myDialog::myDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::myDialog)
    {
    ui->setupUi(this);
    }
    @



  • p{direction: rtl; text-align: right}. کدت رو به شکل بالا اصلاح کن


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.