1
버튼을 클릭 할 때 함수를 실행하는 간단한 programm (QtDesigner에서)을 만들고이 함수의 값을 LineEdit에 표시하고 싶습니다. 그리고 여기 내 코드입니다 :PyQt. 함수 값을 lineEdit로 변환하는 방법?
class MyForma1(object):
def AddWidgets1(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(613, 545)
self.pushButton = QtGui.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(244, 352, 111, 51))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.lineEdit = QtGui.QLineEdit(Form)
self.lineEdit.setGeometry(QtCore.QRect(242, 290, 111, 20))
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.retranslateUi(Form)
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), Form.changeText)
def retranslateUi(self, Form):
self.pushButton.setText(_translate("Form", "Click me", None))
self.lineEdit.setText(_translate("Form", "functionvalue", None))
class MyForma2(QtGui.QDialog, MyForma1):
def __init__(self, z11=0):
QtGui.QDialog.__init__(self)
self.AddWidgets1(self)
self.z = z11
def myfunc1(self):
self.z+=1
def changeText(self):
self.myfunc1()
self.lineEdit.setText(str(self.z))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Forma = MyForma2()
Forma.show()
sys.exit(app.exec_())
사실, 그것은 잘 작동하지만 내가 그것을 완료하는 방식처럼 해달라고, 내가 더 절묘한 만들고 싶어. 여기에서 문제는 버튼이 함수와 값 변환 을 함께 "실행"합니다.입니다. 그리고 단추가 함수 만 실행하면 더 좋을 것이라고 생각합니다.이 함수의 값을 LineEdit 에 별도로 단추의으로 변환하는 것이 있습니다. 예를 들어, 지속적으로 모니터링해야하는 함수 값이 버튼뿐만 아니라 다른 이벤트 (예 : COM 포트에서 들어오는 신호)에 의해 영향을받을 수있는 상황이있을 수 있습니다. 이 경우 버튼을 누를 때뿐만 아니라 기능이 변경 될 때마다 신호를 내보내는 것이 좋습니다.
질문은 무엇을 호출 할 수 있습니다 값을 수동으로 변경하려면? 신호/슬롯 메커니즘을 이해하는 것처럼 보이므로 접근 방법을 알 수 있습니다! 클래스의 변수 ('self.z')를 업데이트하는 함수를 만들고 함수의 끝에서 lineedit를 업데이트하는 함수를 호출하는 사용자 정의 신호를 내 보냅니다. – Ecno92