如果 functools.partial 未使用,则不显示 QMainWindow

QMainWindow not shown if functools.partial not used

我在父 QMainWindow

中点击按钮后显示第二个 QMainWindow
def on_click(self):
    window = second_window.MainWindow()
    window.show()

第二个 window 未显示(没有任何错误)。但是如果在 Second window 我添加行:

self.func = functools.partial(self.some_func)

所有工作正确。

为什么会这样?

我认为这里的问题是您将 window 创建为 on_click 范围内的局部变量。一旦 on_click 完成,window 属性将被销毁。

尝试将 window 存储在实例变量中:

def on_click(self):
    self._window = second_window.MainWindow()
    self._window.show()

functools.partial 方法可能有效只是因为您已经将其存储在实例中。