[英]How to import UI from Qt Designer
我正在制作一個僅包含按鈕的簡單GUI。 我決定使用PyQt Designer。
我決定由Designer生成的UI將在一個文件中,其余的將在另一個將導入UI的模塊中。
PyQt Designer生成的文件為:
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(326, 232)
self.pushButton = QtGui.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(104, 30, 101, 31))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.retranslateUi(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Form", None))
self.pushButton.setText(_translate("Form", "PushButton", None))
導入它的主文件如下所示:
import sys
from PyQt4 import QtCore, QtGui
from stacko import Ui_Form
class test(Ui_Form):
self.pushButton.connect.clicked(self.onClick)
def onClick(self):
print "clicked!"
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
Form = QtGui.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
我希望單擊該按鈕時,它將打印出“已單擊!”。 由於某種原因,它對我不起作用。 我讀了很多關於類/子類和OOP的文章,但仍然無法正常工作。
引發錯誤: NameError: name 'self' is not defined
這是您的主模塊應如下所示:
import sys
from PyQt4 import QtCore, QtGui
from stacko import Ui_Form
class Test(QtGui.QWidget, Ui_Form):
def __init__(self):
super(Test, self).__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.onClick)
def onClick(self):
print "clicked!"
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = Test()
window.show()
sys.exit(app.exec_())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.