1

我正在创建一个新的子类QWidgetwith:new TestView; 当我调用该语句时,会打开一个新窗口。

此外,当我将此小部件添加到布局时,窗口会“关闭”,并且该小部件首先应显示在布局中。

如何确保小部件不显示为新窗口?

有谁能够帮我?

4

2 回答 2

5

如何确保小部件不显示为新窗口?

发生这种情况是因为您的小部件在您将其添加到布局之前是可见的。无论您是在对象上调用show()还是raise()在早期调用TestView,或者在父部件创建和添加到布局之间的那一刻,您都在父部件上执行相同的操作。

如果您在其构造函数中显示您的小部件,那是一个非常糟糕的主意。

于 2012-12-11T10:53:36.037 回答
2

我有同样的问题,我发现我可以做这个小技巧,在将小部件添加到布局之前禁用它的可见性并在之后重新启用:

self.widget.setVisible(False)
self.tab.layout().addWidget(self.widget)
self.widget.setVisible(True)

希望它至少对那里的人有用!

(这是用于 PySide2 顺便说一句)

于 2019-04-27T11:19:11.833 回答