我尝试使用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"可以打开资源管理器)