Qt Designer 无法推广 QMainWindow



我不太了解Qt Designer。我已经使用它有一段时间了,但我仍然总是手动编辑。ui文件。

在Qt的每一个教程中都可以看到,当你创建一个GUI时,你要做的第一件事就是子类化QMainWindow -例如,为了捕获和重新定义closeEvent()函数。

然而,在Qt设计器中不可能子类化("提升")QMainWindow -你可以用许多其他类来做,但不是这个。

我通常做的是编辑。ui文件并更改:

<class>MainWindow</class>
  <widget class="QMainWindow" name="MainWindow">
由:

< widget class="MyMainWindow" name="MainWindow">

这样我的代码可以在我的代码中正确地子类化QMainWindow:

class MyMainWindow(QMainWindow, object):
    ''' I can redefine closeEvent here! '''

很明显,这很奇怪——我可能错过了一些关于如何正确使用Designer的方法。但是我找不到任何解释。

为什么不可能在设计器中子类化QMainWindow,或者如何以不同的方式构建我的应用程序以避免对它的需要?

谢谢

一般不需要提升UI树的根元素。如果使用UI文件正确初始化类,则可以不使用它重新定义closeEvent

我知道这是旧的。我也遇到了同样的问题。我想在子窗口中使用对接功能。当我尝试推广QMinWindow时,我没有在列表中看到它。然后我试着在下拉列表中使用QWidget,它神奇地通过了。

这是我的经验

相关内容

  • 没有找到相关文章

最新更新