PySide6:Qt Designer UI文件的两种使用方式

这篇具有很好参考价值的文章主要介绍了PySide6:Qt Designer UI文件的两种使用方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

通过Qt Designer(PyQt6与PySide6对应的Designer设计的界面生成的UI文件有区别)设计的界面会生成对应的UI文件,一般会使用PyUIC工具将UI文件转换为对应的Py文件来使用,后面每次界面发生更新时都要重新转换一次,比较麻烦;另外,如果直接在UI文件中添加自己的代码,如信号与槽等动作的设计,当UI有更新时都会覆盖自己添加的代码,显然不合理,目前发现有两种方式可以避免上面的问题,第一种,继承UI文件中的类,自己的代码添加在继承类中;第二种,在自己的类中加载UI文件,不需要转换UI文件。两种方式各有利弊,下面详细看一下设计过程,首先简单定义一下生成的UI设计文件,设计的UI文件为main.ui,转换以后的Python文件为main.py,如下所示:

# -*- coding: utf-8 -*-
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QPushButton, QSizePolicy, QWidget)

class Ui_widget(object):
    def setupUi(self, widget):
        if not widget.objectName():
            widget.setObjectName(u"widget")
        widget.resize(640, 480)
        self.btn = QPushButton(widget)
        self.btn.setObjectName(u"btn")
        self.btn.setGeometry(QRect(0, 0, 75, 24))

        self.retranslateUi(widget)

        QMetaObject.connectSlotsByName(widget)
    # setupUi

    def retranslateUi(self, widget):
        widget.setWindowTitle(QCoreApplication.translate("widget", u"Form", None))
        self.btn.setText(QCoreApplication.translate("widget", u"Btn", None))
    # retranslateUi

类继承方式

import sys
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication, QMainWindow
from main import Ui_widget


class Main(Ui_widget):
    def __init__(self, widget):
        super().setupUi(widget)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon("icon.ico"))
    widget = QMainWindow()

    window = Main(widget)
    widget.show()
    sys.exit(app.exec())

上面继承类中的super().setupUI(widget)是关键,通过调用父类的窗口初始化函数,把父类中的组件继承到当前类

加载UI文件的方式

import sys
from PySide6.QtCore import QObject, QFile
from PySide6.QtUiTools import QUiLoader
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication


class Main(QObject):
    def __init__(self):
        QObject.__init__(self)

        # 加载UI文件
        qfile = QFile('main.ui')
        qfile.open(QFile.ReadOnly)
        qfile.close()
        self.ui = QUiLoader().load(qfile)

        # 调用界面类中的组件
        self.ui.btn.setText('New name')

if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon("icon.ico"))

    window = Main()
    window.ui.show()
    sys.exit(app.exec())

总结

两种方式都实现了界面文件和自己代码的整合,但是有以下几点区别,个人更偏向于类继承的方式,从代码设计的逻辑性来说更合理。
1、类继承方式当界面发生变化时需要重新转换生成对应的Python文件,加载UI文件的方式不需要转换即可使用;
2、易用性方面,类继承方面因为是继承,在IDE中可以对设计文件中的组件进行代码提示,加载UI文件的方式因为是把界面类初始化成了自有类的一个属性对象,调用界面类中组件时不会有提示,且调用方式跟继承类方式相比会有区别。文章来源地址https://www.toymoban.com/news/detail-510299.html

到了这里,关于PySide6:Qt Designer UI文件的两种使用方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Qt Designer为您的Qt for Python项目创建基于Qt Widgets的图形界面的两种方法

    本页介绍如何使用Qt Designer为您的Qt for Python项目创建基于Qt Widgets的图形界面。Qt Designer是一个图形UI设计工具,可以作为独立的二进制文件(pyside6-designer)提供,也可以嵌入到Qt Creator IDE中。它在Qt Creator中的使用在Using Qt Designer中描述。 设计存储在.ui文件中,这是一种基于

    2024年02月07日
    浏览(48)
  • Python使用Pyside2和Qt Designer实现接口数据查询mainwindow-tablewidget和EXCEL导出功能,并生成EXE可执行文件直接调用.ui文件和生成py调用都有-初学

    通过Pyside2库调用QT Designer的UI文件,直接调用.ui文件和将.ui文件转换为.pt文件进行调用,调用测试成功生成exe文件 可以直接在终端调用 参考:https://blog.csdn.net/qq_44940689/article/details/123913832 直接在终端中运行 -F 只会生成单独的一个exe文件 -w 是双击exe不会打开黑色窗口,可以试

    2024年02月04日
    浏览(51)
  • Pyside6(3): 自动生成UI的Qt参数输入对话框

    参数输入界面是桌面软件开发最繁琐的部分之一。特别是当系统中存在多种可编辑的数值模型时,由于各个模型的字段不同,每个字段的输入类型也不同,需要制作不同的UI,使用不同的UI控件,无疑会耗费大量时间,同时拓展性也非常差,因为每增加一个数值模型,都需要制

    2024年02月03日
    浏览(58)
  • PySide6 将.ui文件编译为.py文件

    1. 制作UI 平时使用QT creator设计器设计UI,然后可将其转化成 .py 文件,以供 .py 脚本使用。 2.Pyside6 转换ui为 .py 文件 pyside6使用过程: 生成的py文件: 3. .py 文件国际化 通过pyside6-uic生成的 .py 代码中,中文或文本将使用unicode表示,即:“机器人设置”(u\\\"u673au5668u4ebau8bbeu

    2024年02月12日
    浏览(50)
  • Pyside6实现自定义widget嵌套(自定义widget为独立ui文件)

    在实际项目开发中,可能存在需要将自定义的widget嵌入到某一窗口的情况,或者为维护简洁方便,将一个大的UI文件拆分为多个独立的UI文件进行管理。这时就存在不同窗口的ui文件进行嵌套。 以widget控件为例,对实现过程进行记录,类间关系如下: 主窗口为自己编写的Main

    2024年02月08日
    浏览(43)
  • QT Designer 生成的ui文件转化成py文件以及简单使用

    首先用QTdesigner 设计你的界面 然后保存成.ui文件 这一步大家应该都可以做到,就不细讲了 然后就是转换步骤 使用cmd进入ui所在目录 或者在pycharm项目里的终端进入ui所在目录 然后输入下列语句 这里的outputUI就可以替换成你想要的输出文件名 InputUI就是你想要转换的ui文件名 稍

    2023年04月08日
    浏览(51)
  • 使用Python和Qt6(PySide6)创建GUI应用1简介

    在本书从GUI开发的基本原理逐步过渡到使用PySide6创建您自己的、功能齐全的桌面应用程序。 图形用户界面(GUI Graphical User Interface) 历史悠久,可追溯到20世纪60年代。斯坦福大学的NLS(ON-Line 系统引入了鼠标和窗口概念,并于1968年首次公开展示。随后,施乐公司于1973年推出

    2024年02月04日
    浏览(44)
  • PyQt6 使用Qt Designer实现简单的界面,以及ui文件转py文件

    前言,主要通过参考并总结两篇文章中的部分内容,参考文章一 参考文章二 新增一个用户注册界面,包含用户名,密码,性别,手机号,点击注册按钮时,弹出一个对话框,提示恭喜 “{用户输入的用户名}” 注册成功。但是无奈还没找出获取最新输入用户名的值,就简单做

    2024年02月04日
    浏览(50)
  • 【Qt】使用Qt designer(Qt设计师)以及uic工具将ui文件转换到C++代码进行界面开发

    【Qt】编写第一个Qt程序,使用Cmake编译并运行 Qt Designer是一个用于创建Qt应用程序用户界面的图形化界面设计器。它是Python GUI开发的一个重要工具,可以帮助用户快速创建具有丰富功能的用户界面。 打开终端输入以下代码 点击创建 拖一些组件进来,点击保存 得到一个后缀为

    2024年02月16日
    浏览(54)
  • Pyside6:加载.ui

    通常来说开发Qt的界面基本都在Qt Designer中进行的,它保存的文件为.ui,我们可以通过uic将其转变为.py文件(如何使用:Pyside6:安装及Pycharm配置_pyside6安装pycharm-CSDN博客)。 那么该如何进行加载呢?大致来说有两种方法: 这个非常简单,无需把.ui文件进行转换,但 loader.loa

    2024年02月03日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包