我试图用tkinter创建一个Python GUI。任何人都可以告诉我如何做到以下几点:
我的代码如下:
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()
答案 0 :(得分:0)
我建议您使用Grid insted of 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)
除非你想绘画,否则你不需要画布。
您可以使用.config
更新Tkinter中的标签文字。
def clicks(event):
xy_coord = "x=%d y=%d" % (event.x, event.y)
label.config(text= xy_coord)