QT设计师:在行动

时间:2016-02-04 21:34:18

标签: c++ qt

我是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();
}

1 个答案:

答案 0 :(得分:0)

在表单文件中定义新窗口的布局,其名称与您的对话框相匹配。 创建一个基类型为QDialog的新C ++类,称为mySpecialDialog。它应该参考表格文件如下; 私人的:     UI :: mySpecialDialog ui;

然后在主代码中,当您想要对话框时,......

    mySpecialDialog *msd;

    msd = new mySpecialDialog();

    if (msd->exec() == QDialog::Accepted)
    {
         ... code 
    }
    else
    {

    }

瞧。