我想从一个按钮点击事件的现有对话框打开一个新的对话框窗口,但我无法做到这一点,因为我从MainWindow打开对话窗口。从qt中的对话框打开新对话框
我,试图:
Dialog1 *New = new Dialog1();
New->show();
有没有打开现有的对话窗口对话窗口形式不同的方式???
我想从一个按钮点击事件的现有对话框打开一个新的对话框窗口,但我无法做到这一点,因为我从MainWindow打开对话窗口。从qt中的对话框打开新对话框
我,试图:
Dialog1 *New = new Dialog1();
New->show();
有没有打开现有的对话窗口对话窗口形式不同的方式???
必须有一些其他问题,因为你的代码看起来不错。以下是我想做到这一点:
#include <QtGui>
class Dialog : public QDialog
{
public:
Dialog()
{
QDialog *subDialog = new QDialog;
subDialog->setWindowTitle("Sub Dialog");
QPushButton *button = new QPushButton("Push to open new dialog", this);
connect(button, SIGNAL(clicked()), subDialog, SLOT(show()));
}
};
class MainWindow : public QMainWindow
{
public:
MainWindow()
{
Dialog *dialog = new Dialog;
dialog->setWindowTitle("Dialog");
dialog->show();
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setWindowTitle("Main Window");
w.show();
return a.exec();
}
顺便说一句,请注意我是如何连接QPushButton的“点击”信号了QDialog的“秀”插槽。非常便利。
我是QT的新手,我确实有类似的问题。就我而言,我从主对话框的函数调用新对话框。我正在使用dlg->show
,它不等到新对话框的结果。因此该程序仍在运行。我将dlg->show
更改为dlg->exec
,现在对话框工作正常。在你的代码中,对话框似乎是一个局部变量,也许你有同样的问题。其他选项可以是使用静态指针。
Dialog1 *newDlg = new Dialog1();
this->hide();
int result = newDlg->exec();
this->show();
delete newDlg;
在mainwindow.h文件,应声明指针到新的对话框 和包括像
#include <myNewDialog.h>
private:
Ui::MainWindow *ui;
MyNewDialog *objMyNewDialog;
之后,你可以打电话给你的对话框新dialog.h中显示了在mainwindow.cpp like
void MainWindow::on_btnClose_clicked()
{
objMyNewDialog= new MyNewDialog(this);
objMyNewDialog->show();
}
不要忘记隐藏前面的对话框 - > - > hide(); – 2013-05-27 11:45:05