关于pyuic5,有时提供的是pyuic5.exe, 有时是pyuic5.bat,用法都一样。
重要的参数有2个,一个是o,一个是x(嗯,确实是有点那个)
pyuic $FileName$ -o ui_$FileNameWithoutExtension$.py -x
意思是,将 file.ui这个文件,生成一个名字为ui_file.py的文件,这个文件可直接执行(-x)的意思。
那么生成的直接可执行是什么意思呢,就是附加了这样一段代码:
if __name__ == "__main__":
import sys
from PyQt5.QtWidgets import QApplication
app = QApplication(sys.argv)
AddEditMovieDlg = QtWidgets.QDialog()
ui = Ui_AddEditMovieDlg()
ui.setupUi(AddEditMovieDlg)
AddEditMovieDlg.show()
sys.exit(app.exec())
问题在于,前面生成的代码,有自己的逻辑:
class Ui_AddEditMovieDlg(object):
def setupUi(self, AddEditMovieDlg):
AddEditMovieDlg.setObjectName("AddEditMovieDlg")
AddEditMovieDlg.resize(484, 334)
但是他为什么不直接继承QDialog,反而要继承object这个远祖呢?
理由不知道,但是pyuic确实是这个逻辑在进行的。