如何使PMW计数器在值更改时调用函数

嗨,
我已经实现了许多megawidget计数器,我希望它们在值更改时调用函数。这个是可能的吗?
到目前为止,当我在条目字段中输入击键时,我只能让计数器调用我的函数(不包括向上和向下箭头键,这两个键不起任何作用)。以下是一段视频片段:

选择 | 换行 | 行号
  1. myCounter.component('entryfield').bind("<Key>",myFunc)
  2.  

我希望在我单击上箭头和下箭头对象时也调用该函数。然而,如果我这样做了:

选择 | 换行 | 行号
  1. myCounter.component('uparrow').bind("<Button 1>",myFunc)
  2.  

然后uparrow失去其正常操作(我可以将myCounter.increment()放在myFunc中,但当我单击并按住按钮时,计数器只递增一次,这与正常的PMW计数器行为不同)
我也尝试过使用Entryfield_Command,但它只处理关键事件。

选择 | 换行 | 行号
  1. myCounter = Pmw.Counter(myFrame,
  2.     datatype = {'counter': 'real'},
  3.     entryfield_validate = {'validator': 'real', 'min': 0.0, 'max': 10.0},
  4.     entryfield_value = 2.0,
  5.     entryfield_command = myFunc,
  6.     entry_justify = 'center',
  7.     entry_width = 4,
  8.     orient = 'vertical',
  9.     increment = 0.1,
  10.     labelpos = 'w',
  11.     label_text = 'My text')
  12.  

那么,有没有办法让PMW计数器在其值发生变化时调用函数呢?
预先感谢您的帮助

# 回答1


试试这个:

选择 | 换行 | 行号
  1. myCounter.component('uparrow').bind("<Button 1>",myFunc, add="+")
# 回答2


Bvdet
谢谢你,我印象非常深刻!这样做效果很好。你能告诉我你是怎么弄明白这一点的吗?这样我就知道将来该往哪里看了。我只是运行了Help(Button.ind),它提到了Add,但它没有说明Add可以接受的任何值。再次感谢您。
# 回答3


请查看Python文档
"Tkinter-到Tcl/Tk的Python接口"部分"24.1.6.7.绑定和事件"

标签: python

添加新评论