我是QT Designer的新手,想要从动作中打开特定的窗口。我已经搜索了,我看到的所有示例都像this answer,只提供了一个通用的新窗口,而不是已经预定义的窗口。现在我正在尝试在文件对话框完成后立即打开一个名为listcsv的预定义窗口(带有标题,源和表单)。但是代码只会弹出一个通用的空白窗口,而不是我需要的窗口。
这是我的主窗口.cpp:
#include "csv_helper.h"
#include "ui_csv_helper.h"
#include "listcsv.h"
#include "ui_listcsv.h"
#include <QFileDialog>
#include <QWindow>
CSV_helper::CSV_helper(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::CSV_helper)
{
ui->setupUi(this);
}
CSV_helper::~CSV_helper()
{
delete ui;
}
void CSV_helper::on_buttonBox_accepted()
{
QFileDialog::getOpenFileName(this, tr("Open CSV"), "/Users/Dropbox", tr("CSV Files (*.csv)"));
QWidget *listcsv = new QWidget;
listcsv->show();
hide();
}
我感到沮丧的是,这已经过于简单,但互联网上的任何内容似乎都没有给出直接答案。
编辑:解决了,感谢john elemans。只需修改一些东西。
void CSV_helper::on_buttonBox_accepted()
{
QFileDialog::getOpenFileName(this, tr("Open CSV"), "/Users/Dropbox", tr("CSV Files (*.csv)"));
ListCSV *msd;
msd = new ListCSV();
msd->show();
}
答案 0 :(得分:0)
在表单文件中定义新窗口的布局,其名称与您的对话框相匹配。 创建一个基类型为QDialog的新C ++类,称为mySpecialDialog。它应该参考表格文件如下; 私人的: UI :: mySpecialDialog ui;
然后在主代码中,当您想要对话框时,......
mySpecialDialog *msd;
msd = new mySpecialDialog();
if (msd->exec() == QDialog::Accepted)
{
... code
}
else
{
}
瞧。