Pyside6-Designer:导出python of Custom(晋升)小部件 我已经在Pyside6 GUI中为小部件创建了设计。 这种mycustomwidget在我的主UI中定义了,其中包含许多其他内容。 我想单独隔离和导出该小部件的代码...

问题描述 投票:0回答:1
################################################################################ ## Form generated from reading UI file 'main_window_uiERYisl.ui' ## ## Created by: Qt User Interface Compiler version 6.8.0 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt) # More imports [...] from myCustomWidget import MyCustomWidget

一旦将其推广后,Whather
myCustomWidget

是包含小部件的预期模块。但是,这不是作为主UI代码转换过程的一部分导出的 - 仅在单个文件中导出
main_window.ui

内容。

有一种方法可以隔离和导出自定义小部件的代码,无论是否促进?

问题是Pyside6-Designer不会导出促进的小部件的代码。这是一个设计问题,因为它只期望促进的小部件被分开编码,从而在设计师本身中不承担设计和包装。 Afaik&Imho,这将是一个简单而有意义的功能,但似乎不可能。
,但是,我发现了一个相当简单的解决方法,目的是直接从Pyside6-Designer设计,促进和导出窗口小部件的代码。
1。在设计师Gui

中设计您的小部件

在主要对话表中,在Pyside6-Designer中创建了小部件。例如,以下是一个简单的小部件,其中包含子网络。

2。推广小部件
python qt widget pyside6 pyside6-gui
1个回答
0
投票
MyCustomWidget

和标题文件的内容,将类名称设置为thime(这将是预期的Python模块名称;即包含窗口小部件的文件,需要命名

my_custom_widget

)。

my_custom_widget.py

不幸的是,

导出不包括在单独的

pyside6-uic your_file.ui -o ui_your_file.py

文件中包含升级小部件的代码,因为它仅导出包含主UI的1个文件,而没有促进的小部件代码,这仅是从单独的文件中导入的。 enter image description here因此,我们将需要下一步以获取促进的小部件代码。 3。导出晋升的小部件的代码

这涉及以下步骤:

创建一个新的空对话框

复制在空对话框中晋升的小部件
通过右键单击 - > demote to qwidget。
Export的整个对话框的代码现在仅包含被降级的小部件:表单菜单 - >查看Python代码 - >保存...
...

将代码放在名为

from my_custom_widget import MyCustomWidget

的文件中

导出的代码将具有以下表格:

metadatarenamewidget.py

现在,将类签名替换为从对话框类转换为Qwidget类,根据我们宣传小部件(
my_custom_widget.py)时匹配预期的类名称,并删除我们不需要的对话框的代码:

from PySide6.QtCore import ... class Ui_Dialog(object): def setupUi(self, Dialog): if not Dialog.objectName(): Dialog.setObjectName(u"Dialog") Dialog.resize(1138, 300) # [...code of your promoted-demoted widget...]

etvoilà

!直接从Pyside6-Designer设计并导出了小部件的代码。 this this小部件代码将通过“主表单”对话框正确引用。 我找不到任何更简单的方法,这似乎很奇怪,但至少这有效。如果有更简单的解决方案,请很高兴得到评论。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.