目录
前言
一、直接引用
二、间接引用
1.将ui文件转化成py文件
2.进行调用
三、区别
总结
有关qt designer的使用在这里就不多说了,网上有很多资料,我也会之后进行个人理解方面的介绍。此文章仅说明如何引用ui文件。引用分为两种,一种为直接引用,一种为间接引用(转化成py文件进行调用)。都用到了pyside2。以下举例说明。
用qt designer设计出界面,保存为ui文件。
没安装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_()
注意路径,我的文件是这样存放的:
一种可以直接复制粘贴,打开将代码贴到新建的py文件中,或者直接保存成py文件。
另一种打开cmd(命令窗口),将路径转到当前路径下。输入转换命令。
小技巧:除了使用cd进行路径转换,也可以先打开当前文件夹,在选中路径敲入cmd,回车,打开的窗口中的路径即为当前路径。
pyside2-uic hw.ui -o hwui.py
转换成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_()
文件存放如下:
直接调用
好处:当ui修改后,无需转换,直接运行调用程序即可获得最新的界面。
间接调用
好处:可以清晰看到代码,如果用到ui中的代码便于复制粘贴或直接修改。
两种各有利弊,个人建议是如果界面处于调试状态,或者主程序与界面关联较小,可以使用直接调用,无需再转成py文件;反之,如果后期关联较多,会根据后端对前端界面进行修改(比如后端给前端一个连接状态,前端就要显示开启的颜色等,使用ui文件我就无法对界面进行实时改变),建议还是转成py程序,便于操作。
以上就是今天要讲的内容,对引用ui文件进行了简单介绍,也根据经验作出一些个人见解。如哪里有说的不对的地方,欢迎指正~