QFileDialog无法从Dialog窗口打开,但它确实从MainWindow打开

时间:2017-03-28 22:02:46

标签: c++ qt dialog

我尝试使用Qt和C ++从对话框窗口打开文件资源管理器对话框。我的" dialog.cpp"文件看起来像这样:

#include "dialog.h"
#include "ui_dialog.h"
#include "QFileDialog"

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

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

void Dialog::on_pushButton_Browse_clicked()
{
    QString filename = QFileDialog::getOpenFileName(this, tr("Open File"), "C://", "All files (*.*)");
}

我看过的每个地方都说这应该没有问题。所以我尝试在我的" mainwindow.cpp"中添加相同的代码。文件。这是:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "ui_dialog.h"
#include "QFileDialog"

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

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

void MainWindow::on_pushButton_Open_dialog_clicked()
{
    dialogUi.setupUi(dialog);
    dialog->show();
}

void MainWindow::on_pushButton_Save_clicked()
{
    QString filename = QFileDialog::getOpenFileName(this, tr("Open File"), "C://", "All Files (*.*)");
}

这将打开文件资源管理器对话框,没有任何问题。但是,我想从主窗口打开的对话框窗口中打开文件浏览器,即使它是完全相同的代码,它也不起作用。我甚至添加了一个新的MainWindow类(" mainwindow2.cpp")并尝试从中查看是否可能是Dialog类导致问题,但文件资源管理器也不会打开它。它似乎只能在主要的MainWindow类中工作。 (我的意思是从" mainwindow.cpp&#34打开的任何窗口都无法打开文件浏览器对话框,但是" mainwindow.cpp"可以打开资源管理器)

0 个答案:

没有答案