################################################################################
## 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
一旦将其推广后,WhathermyCustomWidget
是包含小部件的预期模块。但是,这不是作为主UI代码转换过程的一部分导出的 - 仅在单个文件中导出
main_window.ui
内容。
有一种方法可以隔离和导出自定义小部件的代码,无论是否促进?
问题是Pyside6-Designer不会导出促进的小部件的代码。这是一个设计问题,因为它只期望促进的小部件被分开编码,从而在设计师本身中不承担设计和包装。 Afaik&Imho,这将是一个简单而有意义的功能,但似乎不可能。
,但是,我发现了一个相当简单的解决方法,目的是直接从Pyside6-Designer设计,促进和导出窗口小部件的代码。1。在设计师Gui
中设计您的小部件
在主要对话表中,在Pyside6-Designer中创建了小部件。例如,以下是一个简单的小部件,其中包含子网络。
2。推广小部件
MyCustomWidget
和标题文件的内容,将类名称设置为thime(这将是预期的Python模块名称;即包含窗口小部件的文件,需要命名
my_custom_widget
)。
my_custom_widget.py
导出不包括在单独的
pyside6-uic your_file.ui -o ui_your_file.py
文件中包含升级小部件的代码,因为它仅导出包含主UI的1个文件,而没有促进的小部件代码,这仅是从单独的文件中导入的。
因此,我们将需要下一步以获取促进的小部件代码。
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...]
!直接从Pyside6-Designer设计并导出了小部件的代码。 this this小部件代码将通过“主表单”对话框正确引用。 我找不到任何更简单的方法,这似乎很奇怪,但至少这有效。如果有更简单的解决方案,请很高兴得到评论。