将按钮连接到标签 - python & Qt4 设计器
connect button to label - python & Qt4 designer
我刚开始制作 GUI 应用程序,我正在 python
中编写刽子手游戏
我想不通的是如何将按钮点击连接到除 clear() 以外的东西(在代码中有一个部分显示为 self.label.clear),但我想举个例子如果我单击按钮或 运行 函数,文本标签显示 'a'
我有按钮 运行 一个功能,但结果只显示在终端上
如何通过单击按钮使标签读取 'a'?
另外,Qt4 designer 是否被视为'bad' GUI 程序?我用谷歌搜索过的关于 python 和 GUI 的问题的所有结果似乎都有一个与 Qt4 生成的代码不相似的代码?
这是 Qt4 新生成的代码,在我对它进行数小时的处理之前
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(400, 300)
self.Button = QtGui.QPushButton(Form)
self.Button.setGeometry(QtCore.QRect(80, 180, 85, 27))
self.Button.setObjectName(_fromUtf8("Button"))
self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(120, 50, 58, 15))
self.label.setObjectName(_fromUtf8("label"))
self.retranslateUi(Form)
QtCore.QObject.connect(self.Button, QtCore.SIGNAL(_fromUtf8("clicked()")), self.label.clear)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Form", None))
self.Button.setText(_translate("Form", "a", None))
self.label.setText(_translate("Form", "okaiokai", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Form = QtGui.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
您可以定义一个新方法来接收点击和处理。
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(400, 300)
self.Button = QtGui.QPushButton(Form)
self.Button.setGeometry(QtCore.QRect(80, 180, 85, 27))
self.Button.setObjectName(_fromUtf8("Button"))
self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(120, 50, 58, 15))
self.label.setObjectName(_fromUtf8("label"))
self.retranslateUi(Form)
QtCore.QObject.connect(self.Button, QtCore.SIGNAL(_fromUtf8("clicked()")), self.setLabel)
QtCore.QMetaObject.connectSlotsByName(Form)
def setLabel(self):
self.label.setText(self.Button.text())
我刚开始制作 GUI 应用程序,我正在 python
中编写刽子手游戏我想不通的是如何将按钮点击连接到除 clear() 以外的东西(在代码中有一个部分显示为 self.label.clear),但我想举个例子如果我单击按钮或 运行 函数,文本标签显示 'a' 我有按钮 运行 一个功能,但结果只显示在终端上
如何通过单击按钮使标签读取 'a'?
另外,Qt4 designer 是否被视为'bad' GUI 程序?我用谷歌搜索过的关于 python 和 GUI 的问题的所有结果似乎都有一个与 Qt4 生成的代码不相似的代码?
这是 Qt4 新生成的代码,在我对它进行数小时的处理之前
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(400, 300)
self.Button = QtGui.QPushButton(Form)
self.Button.setGeometry(QtCore.QRect(80, 180, 85, 27))
self.Button.setObjectName(_fromUtf8("Button"))
self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(120, 50, 58, 15))
self.label.setObjectName(_fromUtf8("label"))
self.retranslateUi(Form)
QtCore.QObject.connect(self.Button, QtCore.SIGNAL(_fromUtf8("clicked()")), self.label.clear)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Form", None))
self.Button.setText(_translate("Form", "a", None))
self.label.setText(_translate("Form", "okaiokai", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Form = QtGui.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
您可以定义一个新方法来接收点击和处理。
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(400, 300)
self.Button = QtGui.QPushButton(Form)
self.Button.setGeometry(QtCore.QRect(80, 180, 85, 27))
self.Button.setObjectName(_fromUtf8("Button"))
self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(120, 50, 58, 15))
self.label.setObjectName(_fromUtf8("label"))
self.retranslateUi(Form)
QtCore.QObject.connect(self.Button, QtCore.SIGNAL(_fromUtf8("clicked()")), self.setLabel)
QtCore.QMetaObject.connectSlotsByName(Form)
def setLabel(self):
self.label.setText(self.Button.text())