【发布时间】:2017-03-20 16:33:04
【问题描述】:
所以我正在尝试创建一个 python GUI 来控制四个按钮。 GUI 按钮由 .grid() 对齐。我希望能够按住一个移动电机的按钮,直到我松开它。我找到了适用于新闻和发布事件的示例,但是我无法使 GUI 看起来与下面的代码相同
from tkinter import *
from tkinter import ttk
def up(event):
print("up")
def down(event):
print("down")
def left(event):
print("left")
def right(event):
print("right")
def stopV(event):
print("stopV")
def stopH(event):
print("stopH")
root = Tk()
root.title("Telescope Controller")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
Bup = ttk.Button(mainframe, text="Up").grid(column=2, row=1, sticky=(W, E))
#Bup.bind("<ButtonPress>",up)
#Bup.bind("<ButtonRelease>",stopV)
Bdwn = ttk.Button(mainframe, text="Down").grid(column=2, row=3, sticky=W)
#Bdwn.bind("<ButtonPress>",down)
#Bdwn.bind("<ButtonRelease>",stopV)
Bl = ttk.Button(mainframe, text="Left").grid(column=1, row=2, sticky=E)
#Bl.bind("<ButtonPress>",left)
#Bl.bind("<ButtonRelease>",stopH)
Br = ttk.Button(mainframe, text="Right").grid(column=3, row=2, sticky=W)
#Br.bind("<ButtonPress>",right)
#Br.bind("<ButtonRelease>",stopH)
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
root.mainloop()
当我编写这样的代码时,.bind() 不起作用并输出
AttributeError: 'NoneType' 对象没有属性 'bind'
当我使用适用于按钮按下和释放事件的示例时,我不能使用 .grid() 代替 .pack() 工作。我不确定如何将按钮与 .pack() 对齐,所以我想知道是否有一种简单的方法可以将按钮按下和释放事件添加到上面的代码中。
谢谢
【问题讨论】:
标签: python user-interface tkinter