小编max*_*esa的帖子

Qt Designer无法推广QMainWindow

有一些我不明白的事情Qt Designer.我一直在使用它已经有一段时间了,但我仍然总是手动编辑.ui文件.

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

但是,不可能QMainWindow在Qt Designer中进行子类化("提升")- 您可以使用许多其他类来完成它,但不能使用此类.

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

<class>MainWindow</class>
  <widget class="QMainWindow" name="MainWindow">
Run Code Online (Sandbox Code Playgroud)

通过:

< widget class="MyMainWindow" name="MainWindow">
Run Code Online (Sandbox Code Playgroud)

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

class MyMainWindow(QMainWindow, object):
    ''' I can redefine closeEvent here! '''
Run Code Online (Sandbox Code Playgroud)

显然,这很奇怪 - 我可能会错过一些关于使用Designer做到这一点的正确方法.但我找不到任何解释.

为什么不能QMainWindow在Designer中进行子类化,或者如何以不同方式构造我的应用程序以避免需要它?

谢谢

qt designer pyside qmainwindow

7
推荐指数
1
解决办法
1209
查看次数

标签 统计

designer ×1

pyside ×1

qmainwindow ×1

qt ×1