C++ 在类中创建QWidget

C++ 在类中创建QWidget,c++,qt,qwidget,C++,Qt,Qwidget,我正在尝试在我的类中创建一个窗口 我浏览了文档: 当代码位于main.cpp中时,它确实会显示窗口 但是我想在其他类中创建窗口。 当我使用该行时: QWidget window; window.show(); 它没有给我窗口,程序也没有退出 那么,我们如何在我们自己的类中创建QT中的小部件呢?这是一个初始化和自定义的示例QWidget: #include <QWidget> void FileManager::initializeMyWidget() { QWidget

我正在尝试在我的类中创建一个窗口

我浏览了文档:

当代码位于main.cpp中时,它确实会显示窗口

但是我想在其他类中创建窗口。 当我使用该行时:

QWidget window;
window.show();
它没有给我窗口,程序也没有退出


那么,我们如何在我们自己的类中创建QT中的小部件呢?

这是一个初始化和自定义的示例
QWidget

#include <QWidget>

void FileManager::initializeMyWidget()
{
    QWidget *myWidget= new QWidget();
    myWidget->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
    myWidget->setWindowFlags(windowFlags() | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);
    QIcon iconMyWidget(":/Images/Images/image.png");
    myWidget->setWindowIcon(iconMyWidget);
    QHBoxLayout *mainLayout = new QHBoxLayout;
    myWidget->setLayout(mainLayout);
}

您的代码可能无法工作,因为小部件在作用域(您的函数?)的末尾被销毁,所以在您显示它之后,它会立即被删除。你需要更多地了解C++对象生命周期,也许QT如何处理内存管理。@ XANDE,所以如果我想在我的类中创建我的小部件而不是在主类中,那么我应该怎么做呢?
#include <QWidget>

void FileManager::initializeMyWidget()
{
    QWidget *myWidget= new QWidget();
    myWidget->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
    myWidget->setWindowFlags(windowFlags() | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);
    QIcon iconMyWidget(":/Images/Images/image.png");
    myWidget->setWindowIcon(iconMyWidget);
    QHBoxLayout *mainLayout = new QHBoxLayout;
    myWidget->setLayout(mainLayout);
}
initializeMyWidget();
myWidget->show();