用户为其设置整数值的程序的 GUI 中有一个元素。在屏幕上看起来像这样:
这是在程序中实现的,如下所示:
class StepNum(Frame):
"""
Виджет, отображающий номер шага тестирования и позволяющий
изменять значение этого номера.
Содержит виджеты:
* Label - Подпись
* Spinbox - Значение
"""
def __init__(self, parent, stepList):
Frame.__init__(self, parent, relief=RAISED, borderwidth=1)
self.parent = parent
self.initUI(stepList)
def initUI(self, stepList):
Label(self, text="Шаг №").grid(row=0, column=0,
padx=3, sticky='w')
self.sp = Spinbox(self, values=stepList, command=self.spinClicket)
self.sp.grid(row=0, column=1, padx=3, sticky='w')
def spinClicket(self):
new_step_num = self.sp.get()
print("Новое значение: {0}".format(new_step_num))
如果用户单击旋转框箭头,则调用spinClicket函数并打印新值。
然而!!!如果用户直接从键盘向Spinbox编辑字段输入新值,则不会发生任何事情,并且不会调用spinClicket函数。
如何在自旋中拦截这种直接输入?
或者,您可以使用
StringVar