QT 设计器:打开特定的操作窗口

QT Designer: opening specific window on action

本文关键字:操作 窗口 QT      更新时间:2023-10-16

我是QT Designer的新手,想从操作中打开一个特定的窗口。我已经搜索过,我看到的所有示例都是这样的答案,只给出了一个通用的新窗口,而不是已经预定义的窗口。现在,我正在尝试在完成文件对话框后立即打开一个名为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();
}

我感到沮丧的是,这是关于如此简单的事情,但互联网上似乎没有给出直接的答案。

编辑:解决了,感谢约翰·埃勒曼斯。只是不得不修改一些东西。

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

在样式文件中定义新窗口的布局,其名称与对话框匹配。创建一个基类型为 QDialog 的新C++类,例如,称为 mySpecialDialog。它应按如下方式引用表单文件;私人: UI::mySpecialDialog ui;

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

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

瞧。