我正在pyqt5中构建一个小实用程序,并尝试将变量传递到另一个类ui文件中。
主要的ui文件
self.showError(errorMessage)
如何将“errorMessage”传递给此类?我应该这样通过吗? class Ui_Error(object,errorMessage):
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Error(object):
def setupUi(self, Error):
Error.setObjectName("Error")
Error.resize(577, 245)
Error.setModal(True)
self.textBrowser = QtWidgets.QTextBrowser(Error)
self.textBrowser.setGeometry(QtCore.QRect(30, 20, 521, 151))
self.textBrowser.setOverwriteMode(False)
self.textBrowser.setObjectName("textBrowser")
self.pushButton = QtWidgets.QPushButton(Error)
self.pushButton.setGeometry(QtCore.QRect(200, 190, 161, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Error)
self.pushButton.clicked.connect(Error.close)
QtCore.QMetaObject.connectSlotsByName(Error)
def retranslateUi(self, Error):
_translate = QtCore.QCoreApplication.translate
Error.setWindowTitle(_translate("Error", "Error"))
self.textBrowser.setHtml(_translate("Error", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:16pt;\">" + errorMessage + "</span></p></body></html>"))
self.pushButton.setText(_translate("Error", "Close"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Error = QtWidgets.QDialog()
ui = Ui_Error()
ui.setupUi(Error)
Error.show()
sys.exit(app.exec_())
答案 0 :(得分:0)
您应该将您的类(在本例中为Ui_Error
)设置为在初始化时接受参数。这是通过课程完成的。 __init__
功能。所以你的类应该像这样声明:
class Ui_Error:
def __init__(self, object, error_message):
# Whatever you want to do with object and error_message
您可以获得有关课程here的更多信息。