【发布时间】:2016-08-06 15:20:44
【问题描述】:
我在从子例程创建 QMainWindow 对象时遇到问题。我需要这个来根据用户的请求创建不同数量的窗口。
问题在于,如果我从子例程创建它,它会被创建为局部变量,并且只显示一瞬间。通常我需要返回一个指针,但我没有设法用这个对象来做。代码如下:
#include <QApplication>
#include <QMainWindow>
QMainWindow runGUI(){
QMainWindow window;
window.show();
window.resize(340,260);
return window;
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
/*
QMainWindow window;
window.show();
window.resize(340,260);
*/
runGUI();
return app.exec();
}
我该如何正确地做到这一点?
【问题讨论】:
-
“通常我需要返回一个指针,但我没有设法用这个对象做到这一点”你能展示一下你到目前为止所做的尝试吗?跨度>
-
另外,在您的
main中,您没有使用返回的runGUI(),因此它在app.exec()之前被销毁 -
你能详细说明一下“我需要这个来根据用户的请求创建不同数量的窗口”你需要不同数量的主窗口吗?
-
@mvidelgauz runGUI() 例程无法编译(它说错误:'QMainWindow::QMainWindow(const QMainWindow&)' is private)。我尝试将
*runGUI();与return &window;并调用QMainWindow *window = runGUI(); -
我也尝试更改为 void 例程,该例程可以编译,但随后窗口瞬间消失。
标签: c++ qt qmainwindow