gpt4 book ai didi

Qt Designer 无法提升 QMainWindow

转载 作者:行者123 更新时间:2023-12-04 12:09:27 25 4
gpt4 key购买 nike

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

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

但是,不能子类化(“提升”)QMainWindow在 Qt Designer 中 - 您可以使用许多其他类来实现,但不能使用这个类。

我通常做的是编辑 .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在 Designer 中,或者如何以不同的方式构建我的应用程序以避免需要它?

谢谢

最佳答案

您通常不需要提升 UI 树的根元素。如果您使用 UI 文件正确初始化您的类,您可以重新定义 closeEvent没有它。 This answer展示了如何正确地做到这一点。

关于Qt Designer 无法提升 QMainWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17026833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com