python-调用ui文件

目录

前言

一、直接引用

二、间接引用

1.将ui文件转化成py文件

2.进行调用

三、区别

总结


前言

有关qt designer的使用在这里就不多说了,网上有很多资料,我也会之后进行个人理解方面的介绍。此文章仅说明如何引用ui文件。引用分为两种,一种为直接引用,一种为间接引用(转化成py文件进行调用)。都用到了pyside2。以下举例说明。


用qt designer设计出界面,保存为ui文件。

python-调用ui文件_第1张图片

 

没安装pyside2的话, 如果是使用pycharm进行代码编写,按照软件波浪线提示操作,即可安装pyside2,或者进入python package,查找pyside2进行安装。还可以通过cmd(命令窗口),通过命令下载pyside2。

pip install PySide

 然后,创建一个py文件作为主程序,对ui文件进行引用。代码分为以下两种:

一、直接引用

# 直接调用ui文件

from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication


class Callui:

    def __init__(self):
        self.ui = QUiLoader().load('ui.ui')


if __name__ == "__main__":
    # 固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行
    app = QApplication()
    # 初始化
    myWin = Callui()
    # 将窗口控件显示在屏幕上
    myWin.ui.show()
    # 程序运行,sys.exit方法确保程序完整退出。
    app.exec_()

注意路径,我的文件是这样存放的:

python-调用ui文件_第2张图片

二、间接引用

1.将ui文件转化成py文件

一种可以直接复制粘贴,打开将代码贴到新建的py文件中,或者直接保存成py文件。

python-调用ui文件_第3张图片

 python-调用ui文件_第4张图片

另一种打开cmd(命令窗口),将路径转到当前路径下。输入转换命令。

python-调用ui文件_第5张图片

 小技巧:除了使用cd进行路径转换,也可以先打开当前文件夹,在选中路径敲入cmd,回车,打开的窗口中的路径即为当前路径。

python-调用ui文件_第6张图片

 

pyside2-uic hw.ui -o hwui.py

2.进行调用

转换成py文件后,其实就是转成了类的调用,按照正常的调用即可:

# 功能:间接调用ui文件(将ui文件转化为py文件)
from PySide2.QtCore import Qt, QUrl, QRect, QSize
from PySide2.QtWebEngineWidgets import QWebEngineView
from PySide2.QtWidgets import QApplication, QMainWindow, QScrollArea


from ui import Ui_Form


class MainWindow(QMainWindow):

    def __init__(self):
        super().__init__()
        # 使用ui文件导入定义界面类
        self.ui = Ui_Form()
        # 初始化界面
        self.ui.setupUi(self)


# 实例化
app = QApplication([])
# 对ui进行再次布局与设置
mainw = MainWindow()
mainw.show()
app.exec_()

文件存放如下:

python-调用ui文件_第7张图片

三、区别

直接调用

好处:当ui修改后,无需转换,直接运行调用程序即可获得最新的界面。

间接调用

好处:可以清晰看到代码,如果用到ui中的代码便于复制粘贴或直接修改。

两种各有利弊,个人建议是如果界面处于调试状态,或者主程序与界面关联较小,可以使用直接调用,无需再转成py文件;反之,如果后期关联较多,会根据后端对前端界面进行修改(比如后端给前端一个连接状态,前端就要显示开启的颜色等,使用ui文件我就无法对界面进行实时改变),建议还是转成py程序,便于操作。


总结

以上就是今天要讲的内容,对引用ui文件进行了简单介绍,也根据经验作出一些个人见解。如哪里有说的不对的地方,欢迎指正~

你可能感兴趣的:(python前端界面,python)