如何使用 tkinter 绑定按钮和对话框?
How can I bind buttons and dialog boxes using tkinter?
我正在尝试使用 tkinter 创建 Python GUI。谁能告诉我如何做以下事情:
- 将“打开”按钮放在屏幕右上角
- 如何将我的 "Open" 按钮与打开一个对话框结合起来,用户可以在其中选择要打开的文件?
- 将标签放在“打开”按钮下 - 我所能做的就是将它们放在根的顶部或根的右侧
- 我需要使用 canvas 和框架吗?
- 如何 send/display 鼠标点击(x,y 坐标)到标签而不是我的控制台?
我的代码如下:
from tkinter import *
def clicks(event):
print(event.x, event.y)
xy_coord = "x=%d y=%d" % (event.x, event.y)
return xy_coord
myroot = Tk()
label = Label(myroot, text="Co-ord: ", fg="black")
label.pack(side=TOP)
myFilename = filedialog.askopenfilename(filetypes = ( ("how code files", "*.hc"), ("All Files", "*.*") ) )
print(myFilename)
button = Button(myroot, text="Open file: ", fg="Blue")
button.bind("<Button>", click)
button.pack(side=RIGHT, padx=5, pady=5)
frame = Frame(myroot, bg="Grey", width=300, height=300)
frame.bind("<Button>", clicks)
frame.pack(expand=YES, fill=BOTH)
myroot.mainloop()
我建议您使用 Grid 而不是 pack,这样您可以更好地控制您的设计。在网格中,您可以将按钮添加到左列(我不知道您将拥有多少列。如果您有三列,您会将按钮添加到第三列)并且您可以使用
openButton.grid(column=3, sticky=E)
这意味着您的按钮将固定在栏的东侧。您还可以使用 N、E、W、S 或 EW 等组合来扩展您的按钮。
为打开按钮编写事件以打开用于选择文件的对话框。
def browse(event):
myFilename = filedialog.askopenfilename(filetypes = ( ("how code files", "*.hc"), ("All Files", "*.*") ) )
openButton.bind("<Button-1>", browse)
之后就可以使用文件路径myFilename打开文件了。
同样,如果您使用网格系统,您可以将打开按钮放在第一行第三列,将标签放在第二行第三列。代码将类似于此
openButton.grid(row=1, column=3 sticky=E)
label = Label(myroot).grid(row=2, column=3 sticky=E)
你不需要 canvas 除非你想画点东西。
您可以使用 .config
在 Tkinter 中更新标签的文本。
def clicks(event):
xy_coord = "x=%d y=%d" % (event.x, event.y)
label.config(text= xy_coord)
我正在尝试使用 tkinter 创建 Python GUI。谁能告诉我如何做以下事情:
- 将“打开”按钮放在屏幕右上角
- 如何将我的 "Open" 按钮与打开一个对话框结合起来,用户可以在其中选择要打开的文件?
- 将标签放在“打开”按钮下 - 我所能做的就是将它们放在根的顶部或根的右侧
- 我需要使用 canvas 和框架吗?
- 如何 send/display 鼠标点击(x,y 坐标)到标签而不是我的控制台?
我的代码如下:
from tkinter import *
def clicks(event):
print(event.x, event.y)
xy_coord = "x=%d y=%d" % (event.x, event.y)
return xy_coord
myroot = Tk()
label = Label(myroot, text="Co-ord: ", fg="black")
label.pack(side=TOP)
myFilename = filedialog.askopenfilename(filetypes = ( ("how code files", "*.hc"), ("All Files", "*.*") ) )
print(myFilename)
button = Button(myroot, text="Open file: ", fg="Blue")
button.bind("<Button>", click)
button.pack(side=RIGHT, padx=5, pady=5)
frame = Frame(myroot, bg="Grey", width=300, height=300)
frame.bind("<Button>", clicks)
frame.pack(expand=YES, fill=BOTH)
myroot.mainloop()
我建议您使用 Grid 而不是 pack,这样您可以更好地控制您的设计。在网格中,您可以将按钮添加到左列(我不知道您将拥有多少列。如果您有三列,您会将按钮添加到第三列)并且您可以使用
openButton.grid(column=3, sticky=E)
这意味着您的按钮将固定在栏的东侧。您还可以使用 N、E、W、S 或 EW 等组合来扩展您的按钮。
为打开按钮编写事件以打开用于选择文件的对话框。
def browse(event): myFilename = filedialog.askopenfilename(filetypes = ( ("how code files", "*.hc"), ("All Files", "*.*") ) ) openButton.bind("<Button-1>", browse)
之后就可以使用文件路径myFilename打开文件了。
同样,如果您使用网格系统,您可以将打开按钮放在第一行第三列,将标签放在第二行第三列。代码将类似于此
openButton.grid(row=1, column=3 sticky=E) label = Label(myroot).grid(row=2, column=3 sticky=E)
你不需要 canvas 除非你想画点东西。
您可以使用
.config
在 Tkinter 中更新标签的文本。def clicks(event): xy_coord = "x=%d y=%d" % (event.x, event.y) label.config(text= xy_coord)