【发布时间】:2013-04-17 01:52:31
【问题描述】:
这是我尝试实现一个简单表达式求值器的类:
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,然后它会告诉您您是否给出了正确的响应,问题似乎是我无法将ex_a 参数传递给函数能够评估它,可能是命名空间问题,我在编码方面还是个新手,我的理念是只学最少的东西才能让我到达我想要的地方,所以我想知道我是否必须学习如何子类化QLineEdit 我不知道该怎么做,我看到装饰器可能会有所帮助,这是我不想陷入的另一个麻烦。
【问题讨论】:
-
可以使用QSignalMapper:srinikom.github.io/pyside-docs/PySide/QtCore/QSignalMapper.html
标签: python qt pyside qlineedit