我正在开发一个程序,需要一个带按钮的GUI来完成某些事情,就像对按钮有疑问时的情况一样,但我遇到了困难,因为虽然你可以用按钮激活功能,但你无法测试他们目前正在使用if语句。我知道如何使用检查按钮和单选按钮,但我还没有找到任何其他远程有用的东西。我需要能够知道他们被按下了多长时间,以及在他们被释放时按下他们被按下的东西。我需要一种方法来指定一个变量,当你仍然按住按钮时按下该变量,并且在任何其他时间使用普通按钮假,而不是每次按下时切换的按钮。
答案 0 :(得分:1)
我不清楚你遇到了什么问题,所以我冒昧地编写了一个GUI,按时按下按钮的次数。
import tkinter as tk
import time
class ButtonTimer:
def __init__(self, root):
self.master = root
self.button = tk.Button(self.master, text="press me") # Notice I haven't assigned the button a command - we're going to bind mouse events instead of using the built in command callback.
self.button.bind('<ButtonPress>', self.press) # call 'press' method when the button is pressed
self.button.bind('<ButtonRelease>', self.release) # call 'release' method when the button is released
self.label = tk.Label(self.master)
self.startTime = time.time()
self.endTime = self.startTime
self.button.grid(row=1, column=1)
self.label.grid(row=2, column=1)
def press(self, *args):
self.startTime = time.time()
def release(self, *args):
self.endTime = time.time()
self.label.config(text="Time pressed: "+str(round(self.endTime - self.startTime, 2))+" seconds")
root = tk.Tk()
b = ButtonTimer(root)
root.mainloop()
注意:我在python 2.7中对此进行了测试,然后将导入从Tkinter
更改为tkinter
。它可能在3.x中工作,但我没有用该版本进行测试。