class simpleapp_tk(tkinter.Tk):
def __init__(self,parent):
tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
self.ZOOMIN = tkinter.Button(self,text="ZOOM IN")
self.ZOOMIN.grid(column=1,row=6)
self.ZOOMIN.bind("<Button-1>",self.bzoomin())
self.ZOOMIN.bind("<ButtonRelease-1>", self.brzoomin())
self.pollvar=0
def poll(self):
if self.pollvar==1:
self.ZOOMIN.after(300,self.poll())
self.OnZOOMINClick()
def brzoomin(self,event):
self.pollvar=0
def bzoomin(self,event):
self.pollvar=1
self.poll
def OnZOOMINClick(self):
....code
if __name__ == "__main__":
app = simpleapp_tk(None)
app.title('CAMERA CONTROLL v1')
app.mainloop()
我正在尝试使一个函数在按mousebutton-1时被反复调用。这应该通过轮询来实现。单击按钮时,应调用轮询函数。投票应该持续运行,直到鼠标按钮1被释放。但问题是按下按钮时什么也不会发生。在
编辑指出的错误。但代码肯定还是有问题,因为窗口本身不再显示,代码进入无限循环,因为这行代码“self.ZOOMIN.after之后(300个,自行投票())". (这只是我代码的一部分)
在python中,您需要通过使用括号来传递一系列参数来实际调用方法/函数。如果函数/方法不接受任何参数,则仍需要空括号。换句话说,你想要:
以及
^{pr2}$这是因为在python中,函数和方法是对象。它们可以像其他任何东西一样传递给函数或绑定到局部变量。在
如果你的代码中有一个很奇怪的bug,那么其他的bug也会出现。在
还要注意,}做的是完全相同的事情,您只需要这两个语句中的一个(我更喜欢后者)。在
self.pollvar = int()
和{相关问题 更多 >
编程相关推荐