wps2000 |
2017-06-22 15:44 |
需要说明的是:传统的GUI程序开发不区分前端和后台,统一使用代码管理,源文件中既有创建和设置控件的代码,又有处理业务逻辑的代码,非常杂乱。而.ui文件是 Qt Designer 的界面设计文件,由 XML 代码构成。可以使业务逻辑与界面的分离。但在使用界面代码之前,需将.ui文件转换成.py格式的python源码。在书中,用的是:pyuic4 -o ui_findandreplacedlg.py findandreplacedlg.ui。而在QT5模式下,要将pyuic4换成pyuic5。因此,转换命令如下: pyuic5 -o ui_findandreplacedlg.py findandreplacedlg.ui -o参数后面,ui_findandreplacedlg.py是python格式的目标文件,findandreplacedlg.ui是格式的界面文件。转化后的代码如下: =================================================================== ui_findandreplacedlg.py =================================================================== from PyQt5 import QtCore, QtGui, QtWidgets class Ui_FindAndReplaceDlg(object): def setupUi(self, FindAndReplaceDlg): FindAndReplaceDlg.setObjectName("FindAndReplaceDlg") FindAndReplaceDlg.resize(363, 192) self.hboxlayout = QtWidgets.QHBoxLayout(FindAndReplaceDlg) self.hboxlayout.setContentsMargins(9, 9, 9, 9) self.hboxlayout.setSpacing(6) self.hboxlayout.setObjectName("hboxlayout") self.vboxlayout = QtWidgets.QVBoxLayout() self.vboxlayout.setContentsMargins(0, 0, 0, 0) self.vboxlayout.setSpacing(6) self.vboxlayout.setObjectName("vboxlayout") self.gridlayout = QtWidgets.QGridLayout() self.gridlayout.setContentsMargins(0, 0, 0, 0) self.gridlayout.setSpacing(6) self.gridlayout.setObjectName("gridlayout") self.replaceLineEdit = QtWidgets.QLineEdit(FindAndReplaceDlg) self.replaceLineEdit.setObjectName("replaceLineEdit") self.gridlayout.addWidget(self.replaceLineEdit, 1, 1, 1, 1) self.findLineEdit = QtWidgets.QLineEdit(FindAndReplaceDlg) self.findLineEdit.setObjectName("findLineEdit") self.gridlayout.addWidget(self.findLineEdit, 0, 1, 1, 1) self.label_2 = QtWidgets.QLabel(FindAndReplaceDlg) self.label_2.setObjectName("label_2") self.gridlayout.addWidget(self.label_2, 1, 0, 1, 1) self.label = QtWidgets.QLabel(FindAndReplaceDlg) self.label.setObjectName("label") self.gridlayout.addWidget(self.label, 0, 0, 1, 1) self.vboxlayout.addLayout(self.gridlayout) self.hboxlayout1 = QtWidgets.QHBoxLayout() self.hboxlayout1.setContentsMargins(0, 0, 0, 0) self.hboxlayout1.setSpacing(6) self.hboxlayout1.setObjectName("hboxlayout1") self.caseCheckBox = QtWidgets.QCheckBox(FindAndReplaceDlg) self.caseCheckBox.setObjectName("caseCheckBox") self.hboxlayout1.addWidget(self.caseCheckBox) self.wholeCheckBox = QtWidgets.QCheckBox(FindAndReplaceDlg) self.wholeCheckBox.setChecked(True) self.wholeCheckBox.setObjectName("wholeCheckBox") self.hboxlayout1.addWidget(self.wholeCheckBox) self.vboxlayout.addLayout(self.hboxlayout1) self.hboxlayout2 = QtWidgets.QHBoxLayout() self.hboxlayout2.setContentsMargins(0, 0, 0, 0) self.hboxlayout2.setSpacing(6) self.hboxlayout2.setObjectName("hboxlayout2") self.label_3 = QtWidgets.QLabel(FindAndReplaceDlg) self.label_3.setObjectName("label_3") self.hboxlayout2.addWidget(self.label_3) self.syntaxComboBox = QtWidgets.QComboBox(FindAndReplaceDlg) self.syntaxComboBox.setObjectName("syntaxComboBox") self.syntaxComboBox.addItem("") self.syntaxComboBox.addItem("") self.hboxlayout2.addWidget(self.syntaxComboBox) self.vboxlayout.addLayout(self.hboxlayout2) spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.vboxlayout.addItem(spacerItem) self.hboxlayout.addLayout(self.vboxlayout) self.line = QtWidgets.QFrame(FindAndReplaceDlg) self.line.setFrameShape(QtWidgets.QFrame.VLine) self.line.setFrameShadow(QtWidgets.QFrame.Sunken) self.line.setObjectName("line") self.hboxlayout.addWidget(self.line) self.vboxlayout1 = QtWidgets.QVBoxLayout() self.vboxlayout1.setContentsMargins(0, 0, 0, 0) self.vboxlayout1.setSpacing(6) self.vboxlayout1.setObjectName("vboxlayout1") self.findButton = QtWidgets.QPushButton(FindAndReplaceDlg) self.findButton.setObjectName("findButton") self.vboxlayout1.addWidget(self.findButton) self.replaceButton = QtWidgets.QPushButton(FindAndReplaceDlg) self.replaceButton.setObjectName("replaceButton") self.vboxlayout1.addWidget(self.replaceButton) self.replaceAllButton = QtWidgets.QPushButton(FindAndReplaceDlg) self.replaceAllButton.setObjectName("replaceAllButton") self.vboxlayout1.addWidget(self.replaceAllButton) spacerItem1 = QtWidgets.QSpacerItem(20, 16, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.vboxlayout1.addItem(spacerItem1) self.closeButton = QtWidgets.QPushButton(FindAndReplaceDlg) self.closeButton.setObjectName("closeButton") self.vboxlayout1.addWidget(self.closeButton) self.hboxlayout.addLayout(self.vboxlayout1) self.label_2.setBuddy(self.replaceLineEdit) self.label.setBuddy(self.findLineEdit) self.label_3.setBuddy(self.syntaxComboBox) self.retranslateUi(FindAndReplaceDlg) self.closeButton.clicked.connect(FindAndReplaceDlg.reject) QtCore.QMetaObject.connectSlotsByName(FindAndReplaceDlg) FindAndReplaceDlg.setTabOrder(self.findLineEdit, self.replaceLineEdit) FindAndReplaceDlg.setTabOrder(self.replaceLineEdit, self.caseCheckBox) FindAndReplaceDlg.setTabOrder(self.caseCheckBox, self.wholeCheckBox) FindAndReplaceDlg.setTabOrder(self.wholeCheckBox, self.syntaxComboBox) FindAndReplaceDlg.setTabOrder(self.syntaxComboBox, self.findButton) FindAndReplaceDlg.setTabOrder(self.findButton, self.replaceButton) FindAndReplaceDlg.setTabOrder(self.replaceButton, self.replaceAllButton) FindAndReplaceDlg.setTabOrder(self.replaceAllButton, self.closeButton) def retranslateUi(self, FindAndReplaceDlg): _translate = QtCore.QCoreApplication.translate FindAndReplaceDlg.setWindowTitle(_translate("FindAndReplaceDlg", "Find and Replace")) self.label_2.setText(_translate("FindAndReplaceDlg", "Replace w&ith:")) self.label.setText(_translate("FindAndReplaceDlg", "Find &what:")) self.caseCheckBox.setText(_translate("FindAndReplaceDlg", "&Case sensitive")) self.wholeCheckBox.setText(_translate("FindAndReplaceDlg", "Wh&ole words")) self.label_3.setText(_translate("FindAndReplaceDlg", "&Syntax:")) self.syntaxComboBox.setItemText(0, _translate("FindAndReplaceDlg", "Literal text")) self.syntaxComboBox.setItemText(1, _translate("FindAndReplaceDlg", "Regular expression")) self.findButton.setText(_translate("FindAndReplaceDlg", "&Find")) self.replaceButton.setText(_translate("FindAndReplaceDlg", "&Replace")) self.replaceAllButton.setText(_translate("FindAndReplaceDlg", "Replace &All")) self.closeButton.setText(_translate("FindAndReplaceDlg", "Close"))
|
|