直接使用UI文件(四)

前面的文章都是使用QtDesinger设计出界面文件ui,然后将ui文件转换为py文件,然后将py文件导入,直接进行编程,但是,也可以将UI文件直接读取进来,然后如果界面发生了变化,直接修改ui文件就可以了,不需要再次生成py文件,个人认为因为UI文件是动态加载的,所以UI文件里面的控件的名称在编程的时候是不能智能提示的,所以对于编写代码不是很方便,但是,如果界面变化频繁,动态加载ui文件,而不需要每次重新生成py文件,各有利弊吧!

直接记录如下:

UI文件

直接使用UI文件(四)_第1张图片

然后生成一个py文件:readui.py,代码如下:

from PyQt5 import QtWidgets, uic,QtCore,QtGui
import os
import sys
path = os.getcwd()
qtCreatorFile = path +os.sep+"first.ui"  # UI文件名.
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
#_translate = QtCore.QCoreApplication.translate#
_translate = QtCore.QCoreApplication.translate

class MainUi(QtWidgets.QMainWindow, Ui_MainWindow):
#这里的第一个变量是你该窗口的类型,第二个是该窗口对象。
#这里是主窗口类型。所以设置成当QtWidgets.QMainWindow。
#你的窗口是一个会话框时你需要设置成:QtWidgets.QDialog
   def __init__(self):
       QtWidgets.QMainWindow.__init__(self)
       Ui_MainWindow.__init__(self)
       self.setupUi(self)
       self.pushButton.clicked.connect(self.helloworld)
   def helloworld(self):
       self.label.setText("世界你好")

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MainUi()   #创建窗体对象
    window.show()    #窗体显示
    sys.exit(app.exec_())

关键是Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)这句话,将UI文件导入,并且返回了两个类。其余代码与前面的代码类似。

两个方法,看你更加喜欢哪一种方法,是直接读取UI文件还是将UI文件先转换为py文件呢?

你可能感兴趣的:(PyQt5)