NewWidget *newWidget = new NewWidget(this);为什么我指定父对象为this,窗口显示不出来
时间: 2024-02-16 07:03:49 浏览: 123
Qt widget 鼠标拖拽,分离新窗口
这可能是因为你没有将新的 NewWidget 对象添加到布局中,或者你的布局没有设置好。当你创建一个新的 QWidget 对象时,如果你指定了父对象,那么它会成为父对象的子控件,显示在父对象的坐标系中。如果你没有将它添加到布局中,或者你的布局没有设置好,那么它可能会被遮挡或者显示在错误的位置。
解决这个问题的方法是,确保你已经将新的 NewWidget 对象添加到布局中,并且布局已经设置好。例如,如果你使用的是 QVBoxLayout,你可以使用 addWidget() 方法将 NewWidget 对象添加到布局中:
```cpp
// 在主窗口的构造函数中添加如下代码
QVBoxLayout *layout = new QVBoxLayout(this);
NewWidget *newWidget = new NewWidget(this);
layout->addWidget(newWidget);
```
这样,当你创建一个新的 NewWidget 对象时,它会被添加到 QVBoxLayout 布局中,然后显示在主窗口中。如果你仍然无法显示窗口,请检查一下布局设置是否正确,以及是否有其他问题导致窗口无法显示。
阅读全文