这似乎是一项简单的任务,但我一直无法弄清楚我将如何做。我在 Qt Creator 中设计了两个窗口,其中一个窗口是在我的主窗口中按下按钮时打开的。这是我试图用来打开它的代码:

void MainWindow::on_generateDomain_clicked()
{
    DomainGeneration dg;
    dg.show();
}

DomainGeneration是我的窗口类的名称。为我生成的默认 Qt Creator 的头文件和源代码没有改变。难道我做错了什么?我没有收到任何错误,按下按钮时窗口没有打开。

最佳答案

{
    DomainGeneration dg; // <-- automatic object
    dg.show(); // equivalent to setVisible(true)
} // at this point dg is destroyed!

一种解决方案是使 dg 成为 MainWindow 类的(私有(private))数据成员。
QDialogopen()exec() 方法,它们将对话框显示为模态对话框。可能您认为这是默认行为。但是,在您的情况下, dg 会立即创建和销毁。

10-08 11:39