我是QT設計師的新手,想從操作中打開特定的窗口。我已經搜索過,我看過的所有例子都像this answer,只給出一個通用的新窗口,而不是已經預定義的窗口。現在,我正試圖在文件對話框完成後立即打開一個名爲listcsv的預定義窗口(帶有標題,源代碼和表單)。但是代碼只是彈出一個通用的空白窗口,而不是我需要的。QT設計師:打開特定窗口的動作
這裏是我的主窗口的.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();
}
我感到沮喪,這是在這麼簡單的東西,但沒有在互聯網上似乎給出直接的答案。
編輯:解決,感謝約翰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();
}
您定義了一個名爲ListCSV的小部件,對吧?所以你應該做'auto * myListCSVWidget = new ListCSV();'或者更好的是沒有指針ListCSV myListCSVWidget''。 –
檢查了這兩個。前者給出了一個警告:auto是C++ 11的擴展,運行似乎什麼都不做;後者沒有提出警告,但也沒有做任何事。 – eijen
是的,你需要爲自動設置C++ 11標誌,它不會傷害。它也不會傷害顯示你正在談論的小工具的代碼... –