使用 Python 为 Qt Designer 自定义 Qt 小部件

Posted

技术标签:

【中文标题】使用 Python 为 Qt Designer 自定义 Qt 小部件【英文标题】:Custom Qt Widgets with python for Qt Designer 【发布时间】:2013-04-16 06:28:22 【问题描述】:

我正在尝试仅使用 Python 为 Qt Designer 编写自定义小部件。我正在关注我在网上找到的几个教程,但它们都没有工作或任何接近我称之为最低工作示例的东西。

所以我的问题是:

    使自定义小部件出现在 Qt Designer 的小部件框中涉及哪些步骤? 如果您能抽出时间:请提供一个最小的工作示例(例如一个带有标签的小部件,上面写着“一个真正最小的工作 Qt 自定义小部件示例”)。 或者是否根本不可能包含仅使用 python 的自定义小部件?

【问题讨论】:

【参考方案1】:

关于如何在 pyqt 中制作自定义小部件的示例很少。我用一个工作示例写了这篇文章:Making a Custom Widget in PyQt

【讨论】:

感谢您的这篇文章,但不幸的是,这回答了我的问题。我正在寻找一个显示在设计器本身中的自定义小部件,而无需在某些代码中“手动”添加它。 您能否详细说明一个示例,在您的问题中您说“如何使自定义小部件出现在其他小部件框中”,这就是我在我的博客上为您写的帖子所做的,无论如何,用一个例子详细说明你的问题,会尽力帮助你。 我说的是 Qt Designer (link) 的 Widget Box。小部件框列出了所有常见的小部件,如按钮、列表等。我希望我的自定义小部件显示在该框中,以便我可以在 Qt 设计器中添加和使用我的自定义小部件。【参考方案2】:

这是您的问题 #3 的答案:How do I use promote to in Qt Designer in pyqt4?

我正在使用 PySide,它的工作方式相同。此方法直接适用于您的 Python 自定义小部件代码。您不需要编写任何单独的插件代码。

提升自定义小部件后,您可以右键单击它并使用“更改信号/插槽...”添加您的信号

我建议将所有小部件放在 YourCostumWidgetsPack.UI 文件中,然后当您在 Qt Designer 中加载此文件时,除了您正在工作的 UI 之外。它将加载您所有的自定义小部件信息。

【讨论】:

【参考方案3】:

我发现这篇文章是你的答案:https://doc.qt.io/archives/qq/qq26-pyqtdesigner.html

但是,我无法在 Qt Designer 中安装它:D

【讨论】:

很好,我现在正在使用 Qt。但这绝对回答了我的问题!谢谢你这么晚的回复! 太棒了!只需将其安装在 Qt Designer 中:只需确保将自定义小部件的路径添加到环境变量 PYTHONPATH 和 PYQTDESIGNERPATH 中。而且,我认为我们必须使用 PyQt 提供的 Qt 设计器。我使用 Qt C++ 发行版中的 Qt Designer 对其进行了测试,它不会显示我的自定义 python qt 小部件。 您的链接已损坏,说明为什么您应该始终总结链接的内容,并将其包含在内以供参考。 嗯,请原谅。会注意到这一点 该答案不再有效,链接已损坏。

以上是关于使用 Python 为 Qt Designer 自定义 Qt 小部件的主要内容,如果未能解决你的问题,请参考以下文章

Qt Designer 使用 Python 3.5 而不是 Python 3.7

Qt系列文章之三十六(自定义Qt Designer插件)

Qt系列文章之三十六(自定义Qt Designer插件)

如何在 Qt-Designer 中使用自定义小部件

Qt Designer 使用自定义插件崩溃

在 Qt Creator Designer 中用自定义模板小部件替换小部件