这似乎是一项简单的任务,但我一直无法弄清楚如何去做。我在 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))数据成员。
QDialog
有 open()
和 exec()
方法,它们将对话框显示为模态对话框。您可能认为这是默认行为。但在您的情况下,dg
会立即创建和销毁。
关于c++ - 我如何使用 Qt Creator 从主窗口中的按钮打开一个新窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6336543/