Phải có một số vấn đề khác, vì mã của bạn có vẻ tốt với tôi. Đây là cách tôi muốn làm điều đó:
#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();
}
Bằng cách này, lưu ý làm thế nào tôi đã kết nối "nhấp vào" tín hiệu QPushButton để "show" khe QDialog của. Rất tiện dụng.
đừng quên ẩn hộp thoại trước đây-> ẩn(); –