这篇文章会给大家仔细讲解几个Python GUI的例子。
创建简单的GUI应用
from tkinter import *
window = Tk()
window.title("Hello World")
window.mainloop()
Tkinter是绑定到Tk GUI工具箱的Python。Window在这里就是窗口的意思并且标题是"Hello World"。 mainloop这里表示以上的事件进入循环。
如果你得到和上面图片一样的画面, 那么你就成功完成了一个简单的GUI应用! 但这个窗口上什么都没有, 我们可以加一点东西上去。
添加标签(label)
我们可以通过标签打个招呼。
lbl = Label(window, text="Hello ")
lbl.grid(column=0, row=0)
我们将这个标签放在(0,0)的位置。 这个可以理解为这个窗口的最左上角的坐标是(0,0),依次增加。
from tkinter import *
window = Tk()
window.title("Hello World")
lbl = Label(window, text="Hello")
lbl.grid(column=0, row=0)
window.mainloop()
但是我们发现这个页面变的很小 ?! 这样可不行,有什么办法让它变大么? 当然。
改变窗口的大小
window.geometry('350x200')
这里将这个窗口改成350x200的大小
from tkinter import *
window = Tk()
window.title("Hello World")
window.geometry('350x200')
lbl = Label(window, text="Hello")
lbl.grid(column=0, row=0)
window.mainloop()
这个看上起舒服多了。接着我们尝试将自己的名字加进这个页面。这个时候我们需要考虑一个问题:如果这是一个客户使用的应用, 我们该怎么通过什么方式让客户输入自己的名字呢?因为不是每个客户都会用我们正在用的编译器, 所以我们需要一个客户可以输入的特定的地方。
添加文本输入
txt = Entry(window,width=10)
txt.grid(column=1, row=0)
这里我们将文本框的位置放在紧跟标签的后面。并且为了让文字更加通顺, 我们稍稍改一下标签的内容
from tkinter import *
window = Tk()
window.title("Hello World")
window.geometry('350x200')
lbl = Label(window, text="Hello! My name is ")
lbl.grid(column=0, row=0)
txt = Entry(window,width=10)
txt.grid(column=1, row=0)
window.mainloop()
当我输入Stark后
接下来,我们可以考虑加入按钮来让这个应用更饱满。
添加按钮
btn = Button(window, text="submit")
要注意, 这个时候点击按钮是没有任何反应的,因为我们没有给这个按钮任何的功能。
from tkinter import *
window = Tk()
window.title("Hello World")
window.geometry('350x200')
lbl = Label(window, text="Hello! My name is ")
lbl.grid(column=0, row=0)
txt = Entry(window,width=10)
txt.grid(column=1, row=0)
btn = Button(window, text="submit")
btn.grid(column=2, row=0)
window.mainloop()
按钮的位置紧跟文本框后面
然后让我们假设一下: 面对我们的是一个机器人, 我们确认输入的名字后可以得到机器人的回应。
按钮的功能以及方程
btn = Button(window, text="submit", command=clicked)
我们给这个按钮加入一个点击(clicked)指令。
def clicked():
res = "Welcome to a new world," + txt.get()
lbl.configure(text= res)
txt.destroy()
btn.grid_forget()
clikced这个方程是点击按钮之后会出现的反应。 我把它称作按钮的功能。 txt.get()是用来得到文本框里的内容, 然后将标签的内容替换成机器人(延续上面的例子)的回应, 最后删除文本框和按钮(保留的话会显得奇怪)
from tkinter import *
window = Tk()
window.title("Hello World")
window.geometry('350x200')
lbl = Label(window, text="Hello! My name is ")
lbl.grid(column=0, row=0)
txt = Entry(window,width=10)
txt.grid(column=1, row=0)
def clicked():
res = "Welcome to a new world," + txt.get()
lbl.configure(text= res)
txt.destroy()
btn.grid_forget()
btn = Button(window, text="submit", command=clicked)
btn.grid(column=2, row=0)
window.mainloop()
当我输入我的名字后, 会得到一条对我的打招呼。
以上就是几个简单Python GUI例子的讲解。 希望对大家有帮助。
保持好奇心,保持学习性。感谢大家的阅读~