227.md 2.3 KB
Newer Older
W
wizardforcel 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
# Tk 窗口和按钮

> 原文: [https://pythonspot.com/tk-window-and-button/](https://pythonspot.com/tk-window-and-button/)

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

```
from Tkinter import *

master = Tk()

def callback():
    print "click!"

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

mainloop()

```

![tk button](img/b1fb57a653c6741ced779c294ca87447.jpg) tk button

**相关课程**

*   [带有 Tkinter 的 Python 桌面应用](https://gum.co/ErLc)

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

```
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 image button](img/289712f8426bbfc6ceacdd22bbcff819.jpg) tk image button

**带有文本标签的[Tk Image]按钮** 如果需要图像和文本,只需添加参数 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 button with text and image](img/966f97e15792c89ebeb6f5f8942b0ee5.jpg) tk button with text and image

**按钮位置** 如果要将按钮放置在坐标上,请不要使用 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 button location](img/f8756b4a6882e933bfd6fc3f8f1fe1b6.jpg) tk 按钮位置 [下载 tkinter 示例](/download-tkinter-examples)