Tkinter 窗口和按钮

带有 onClick 事件的 Tk 按钮

要使用按钮创建 Tkinter 窗口,请使用下面的示例。程序进入 mainloop(),等待事件(用户操作)。我们定义了一个回调函数 callback() 的按钮。master 是根窗口,即按钮出现的窗口。

from Tkinter import *

master = Tk()

def callback():
    print "click!"

b = Button(master, text="OK", command=callback)
b.pack()

mainloop()

![tk 按钮](/img/Tutorial/Tkinter/Tkinter Button.png)

Tk 图像按钮

如果需要图像按钮,请使用 PhotoImage 类。我们使用函数 minsize()geometry() 设置窗口的大小和 miminum 大小。例:

from Tkinter import *

master = Tk()
master.minsize(300,100)
master.geometry("320x100")

def callback():
    print "click!"


photo=PhotoImage(file="add.png")
b = Button(master,image=photo, command=callback, height=50, width=150)
b.pack()

mainloop()

结果:

![tk 图像按钮](/img/Tutorial/Tkinter/Tkinter Button Image.png)

带文本标签的 Tk 图像按钮

如果要同时显示图像和文本,只需添加参数 compound = LEFT 即可。

from Tkinter import *

master = Tk()
master.minsize(300,100)
master.geometry("320x100")

def callback():
    print "click!"


photo=PhotoImage(file="add.png")
b = Button(master,image=photo, text="OK", command=callback, height=50, width=150, compound=LEFT)
b.pack()

mainloop()

结果:

![tk 带文本标签的 Tk 图像按钮](/img/Tutorial/Tkinter/Tkinter Button Image and Text.png)

按钮位置

如果要将按钮放在坐标上,请不要使用 pack() 函数,而是使用函数 place(x, y),如下例所示:

from Tkinter import *

master = Tk()
master.minsize(300,100)
master.geometry("320x100")

def callback():
    print "click!"


photo=PhotoImage(file="add.png")
b = Button(master,image=photo, text="OK", command=callback, height=50, width=150, compound=LEFT)
b.place(x = 20, y = 20)

mainloop()

结果:

![tk 按钮位置](/img/Tutorial/Tkinter/Tkinter Button Position.webp)