繁体   English   中英

如何使用 Qt Creator 从主 window 中的按钮打开新的 window?

[英]How would I open a new window from a button in the main window using Qt Creator?

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

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

DomainGeneration 是我窗口的 class 的名称。 header 和源代码没有从为我生成的默认 Qt Creator 更改。 难道我做错了什么? 我没有收到任何错误,按下按钮时 window 只是没有打开。

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

一种解决方案是使dg成为MainWindow class 的(私有)数据成员。

QDialog具有将对话框显示为模态对话框的open()exec()方法。 可能您认为这是默认行为。 但是,在您的情况下, dg会立即创建和销毁。

这更像是对 Nick Dandoulakis 的“谢谢”,而不是答案。 那太有帮助了。 我是个菜鸟,我从来没有想过 object 在方法结束后被销毁。

I declared (or instantiated... or both?) my about class in the header file for my main window (window.h), then added the following functionality to the slot in window.cpp:

void Window::on_actionAbout_triggered()
{
    Window::about.show();
    Window::about.raise();
    Window::about.activateWindow();
}

我想这是可行的,因为关于object 之前已实例化,因此不限于方法或插槽的 scope 很快终止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM