原文: https://pythonspot.com/tk-window-and-button/

带有onClick事件的 Tk 按钮

要创建带有按钮的 Tkinter 窗口,请使用以下示例。 程序进入mainloop(),等待事件(用户操作)。 我们定义具有回调函数callback()的按钮。master是根窗口,您的按钮将出现在该窗口中。

  1. from Tkinter import *
  2. master = Tk()
  3. def callback():
  4. print "click!"
  5. b = Button(master, text="OK", command=callback)
  6. b.pack()
  7. mainloop()

Tk 窗口和按钮 - 图1

tk 按钮

Tk 图像按钮

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

  1. from Tkinter import *
  2. master = Tk()
  3. master.minsize(300,100)
  4. master.geometry("320x100")
  5. def callback():
  6. print "click!"
  7. photo=PhotoImage(file="add.png")
  8. b = Button(master,image=photo, command=callback, height=50, width=150)
  9. b.pack()
  10. mainloop()

结果:

Tk 窗口和按钮 - 图2

tk 图像按钮

带有文本标签的 Tk 图像按钮

如果需要图像和文本,只需添加参数compound = LEFT

  1. from Tkinter import *
  2. master = Tk()
  3. master.minsize(300,100)
  4. master.geometry("320x100")
  5. def callback():
  6. print "click!"
  7. photo=PhotoImage(file="add.png")
  8. b = Button(master,image=photo, text="OK", command=callback, height=50, width=150, compound=LEFT)
  9. b.pack()
  10. mainloop()

结果:

Tk 窗口和按钮 - 图3

带有图像和文本的 tk 按钮

按钮位置

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

  1. from Tkinter import *
  2. master = Tk()
  3. master.minsize(300,100)
  4. master.geometry("320x100")
  5. def callback():
  6. print "click!"
  7. photo=PhotoImage(file="add.png")
  8. b = Button(master,image=photo, text="OK", command=callback, height=50, width=150, compound=LEFT)
  9. b.place(x = 20, y = 20)
  10. mainloop()

结果:

Tk 窗口和按钮 - 图4

tk 按钮位置

下载 tkinter 示例