# 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`是根窗口，您的按钮将出现在该窗口中。

```py
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 按钮

## Tk 图像按钮

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

```py
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 图像按钮

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

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

```py
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 按钮

## 按钮位置

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

```py
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)