Qt Designer / PyQt - 动态复制带有完整嵌入式小部件的选项卡小部件

Posted

技术标签:

【中文标题】Qt Designer / PyQt - 动态复制带有完整嵌入式小部件的选项卡小部件【英文标题】:Qt Designer / PyQt - dynamically duplicate a tab widget with embedded widgets intact 【发布时间】:2017-01-29 18:14:03 【问题描述】:

我有 C# 经验,我正在制作我的第一个 Python 应用程序。我在 QT Designer 中完成了 UI 的一部分,很快我将尝试 PyQt 将它与我的代码集成。这是最佳方法的一般指导问题。

我有一个标签小部件,其中包含每个标签中的各种内容。我希望整个选项卡小部件可以使用加号按钮进行复制。所以基本上,滚动视图包含用户想要的尽可能多的这些选项卡小部件。用户可以将现有实例复制为新实例,或创建一个空白实例。

有人可以帮助我了解如何完成此操作吗?它是这样工作的吗?

    创建滚动视图。 将标签小部件放在滚动视图中。 在标签小部件的角落添加重复和删除按钮。 在滚动视图外放置一个加号按钮。 通过python代码完成所有其余的?还是我会错过一些 Qt Designer 技巧?

任何关于如何在 QT Designer 中执行此操作以及在 PyQt 中编码的提示将不胜感激。

另外,也许题外话,但任何有关 PyQt 安装和使用的一般提示都会很好。 v5 不是 v4?我正在运行 Python 3.6 32 位,有人告诉我应该可以正常运行 3.5 包(但 64 位可能不行)。

谢谢,

【问题讨论】:

我会将 TabWidget 放在单独的 .ui 文件中。这使您可以轻松地创建它的多个实例。 谢谢@GeorgSchölly,这听起来很完美。在修改我的 ui 文件之前,我将尝试一些测试。 【参考方案1】:

首先题外话:如果您开始一个新项目,请使用 PyQt5。 Qt 4 已结束生命周期,除非它是一个关键的安全修复程序,否则不会看到任何新版本。

至于您的大多数问题:如果您想使用 Designer,那么您应该首先查看 Qt Designer's documentation。它会让你很好地开始。

至于5,这取决于口味。出于各种原因,开发人员一直在使用这两种方法。这真的取决于您决定哪种风格最适合您的需求。设计器中没有你无法在代码中完成的技巧。

【讨论】:

PyQt4 可以针对 Qt 5 进行编译。但是您是对的,没有理由将 PyQt4 与 Python 3 一起使用。

以上是关于Qt Designer / PyQt - 动态复制带有完整嵌入式小部件的选项卡小部件的主要内容,如果未能解决你的问题,请参考以下文章

PyCharm+PyQt5+Qt Designer配置

如何在 PyQt 中为 Qt-Designer 小部件实现 MousePressEvent

PyQt5配合Qt-Designer实现GUI

Pycharm安装PyQt5和pyqt5-tools从而使用Qt Designer

pyqt5.8.2没有qt Designer和assistant exe

如何配置 Qt Designer 以在 OSX 中加载 PyQt 小部件?