我从pyqt设计器中制作了一个GUI文件,然后将其转换为.py文件。但是当我在IDE中加载该.py代码(Pycharm和Sublime文本)时,我尝试运行该文件时,它运行无误,但是没有加载GUI的物理方面,我尝试了从互联网上获得的自定义代码,效果很好,当我运行该代码时,GUI出现了。我将提供比我目前正在使用的代码更简单的代码,因为从pyqt designer生成的所有代码似乎在物理方面对我来说根本不起作用。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(170, 200, 91, 30))
self.pushButton.setObjectName("pushButton")
self.lineEdit = QtWidgets.QLineEdit(Form)
self.lineEdit.setGeometry(QtCore.QRect(30, 40, 113, 30))
self.lineEdit.setObjectName("lineEdit")
self.retranslateUi(Form)
self.pushButton.clicked.connect(self.lineEdit.clear)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "PushButton"))
答案 0 :(得分:4)
您有2个选择:
1。。假设您使用了以下命令:
pyuic5 your_filename.ui -o your_filename.py
# or
# pyuic5 your_filename.ui > your_filename.py
该命令不会生成窗口对象或调用show方法,因此不会显示该窗口,您必须使用选项-x
:
pyuic5 your_filename.ui -o your_filename.py -x
2。。添加调用对象的代码:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(170, 200, 91, 30))
self.pushButton.setObjectName("pushButton")
self.lineEdit = QtWidgets.QLineEdit(Form)
self.lineEdit.setGeometry(QtCore.QRect(30, 40, 113, 30))
self.lineEdit.setObjectName("lineEdit")
self.retranslateUi(Form)
self.pushButton.clicked.connect(self.lineEdit.clear)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "PushButton"))
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(w)
w.show()
sys.exit(app.exec_())