您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用PySide将.ui文件加载到python类上?

如何使用PySide将.ui文件加载到python类上?

我正是用PySide做到的。:)

您可以使用此https://gist.github.com/cpbotha/1b42a20c8f3eb9bb7cb8(塞巴斯蒂安·威斯纳的原著位于https://github.com/lunaryorn/snippets/blob/master/qt4/designer/pyside_dynamic.py,但已经消失了) -它将覆盖PySide.QtUiTools.QUiLoader并提供一个loadUi()方法,以便您可以执行此操作:

class MyMainWindow(QMainWindow):
    def __init__(self, parent=None):
        QMainWindow.__init__(self, parent)
        loadUi('mainwindow.ui', self)

实例化MyMainWindow时,它将具有您使用Qt Designer设计的UI。

如果还需要使用自定义窗口小部件(在Qt Designer中为“ Promote To”),请参见以下答案:

从理论上讲,要使您的自定义小部件起作用,您只需要调用

loader.registerCustomWidget(TimelinePane)

调用loader.load()之前。在您的情况下,您需要添加相关的导入语句:

from timeline_pane import TimelinePane

但是,我只是在Ubuntu 12.04 x86_64上使用PySide 1.1.2进行了测试,这导致了段错误。YMMV,所以请测试。

我最终实现了这种解决方法:http : //www.mail-archive.com/pyside@qt-project.org/msg00306.html

简而言之,请覆盖QUiLoader的creteWidget()方法,如果该小部件的class_name不在self.availableWidgets()中,请根据已添加的customWidgets实例变量自行实例化它。

顺便说一句,您还可以在Qt Designer中使用右键单击“ Promote To”功能,而不是直接编辑ui文件

python 2022/1/1 18:35:30 有486人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶