這就是我想實現一個簡單的表達式求值類:如何參數添加到Qt的PySide連接到插槽中時,內置的信號
class mainWindow(QtGui.QMainWindow, mainGui.Ui_MainWindow):
def __init__(*args, **kwargs)
super(mainWindow, self).__init__(*args, **kwargs)
self.setupUi(self)
self.connecting_range_displays()
def connecting_range_displays(self):
ranges = num_ranges()
first_range = num_ranges.ones_range
second_range = num_ranges.tens_range
print first_range
print second_range
self.top_lineEdit.setText(str(first_range))
self.bottom_lineEdit.setText(str(second_range))
ex_a = first_range + second_range
print "this is expressions answer", ex_a
self.answer_lineEdit.returnPressed.connect(self.ex_evaluator)
def ex_evaluator(self, right_answer):
answer = self.answer_lineEdit.text()
if ex_a == right_answer:
print "Correct answer bucko"
在上面的代碼簡單算術練習應用程序我使用兩行來顯示一定範圍內的隨機數字,第三個QlineEdit
即answer_lineEdit
我用它來獲取用戶輸入,然後檢查它是否正確我使用Signal
returnPressed
並將它連接到ex_evaluator
,然後告訴你,如果你給出了正確的回答,問題似乎是我不能通過函數t的ex_a
參數o能夠評估它,它可能是命名空間問題,我是一個非常新的編碼,我的理念是隻學習最少量讓我到我想要的地方,所以我想知道如果我將不得不學習如何爲了繼承QLineEdit
,我不知道該怎麼做,我看到裝飾器可能會有幫助,這是我不想進入的另一個麻煩。
您可以使用QSignalMapper:http://srinikom.github.io/pyside-docs/PySide/QtCore/QSignalMapper.html –