跟我学Python GUI编程系列 – Tkinter(2)-演道网
在本系列教程中,我们将学习如何通过使用Tkinter包编写Python GUI示例来开发图形用户界面。
本文我们切换到Ubuntu 20.04 LTS,Python版本为3.8.2。同样使用IDLE。
添加按钮小部件
让我们从将按钮添加到窗口开始。创建按钮并添加到窗口的方式与标签相同:
btn = Button(window, text=”点击这里”)
btn.grid(column=1, row=0)
现在,我们的窗口将如下所示:
from tkinter import *
window = Tk()
window.title(“欢迎使用linuxidc.com应用”)
window.geometry(‘600×400’)
lbl = Label(window, text=”Linux公社”, font=(“Arial Bold”, 30))
lbl.grid(column=0, row=0)
btn = Button(window, text=”点击这里”, font=(“Arial Bold”, 30))
btn.grid(column=1, row=0)
window.mainloop()
结果看起来是这样的:
请注意,我们将按钮放置在窗口的第二列(即1)上。如果您忘记并将按钮放置在同一列(即0)上,它将只显示该按钮,因为该按钮将位于标签的顶部。
更改按钮前景色和背景色
您可以使用fg属性更改按钮或任何其他小部件的前景色。
此外,您还可以使用bg属性更改任何小部件的背景颜色。
btn = Button(window, text=”点击这里”, bg=”orange”, fg=”red”, font=(“Arial Bold”, 30))
效果如下图:
现在,如果您尝试单击该按钮,则不会发生任何事情,因为尚未编写该按钮的click事件。
处理按钮单击事件
首先,我们将编写单击按钮时需要执行的函数:
def clicked():
lbl.configure(text=”linuxidc.com”, bg=”orange”, fg=”red”)
然后,通过指定如下函数,将其与按钮连接:
btn = Button(window, text=”点击这里”, command=clicked, bg=”orange”, fg=”red”, font=(“Arial Bold”, 30))
注意,我们用括号输入了clicked而不是clicked()。
现在完整的代码将是这样的:
from tkinter import *
window = Tk()
window.title(“欢迎使用linuxidc.com应用”)
window.geometry(‘600×400’)
lbl = Label(window, text=”Linux公社”, font=(“Arial Bold”, 30))
lbl.grid(column=0, row=0)
def clicked():
lbl.configure(text=”linuxidc.com”, bg=”orange”, fg=”red”)
btn = Button(window, text=”点击这里”, command=clicked, bg=”orange”, fg=”red”, font=(“Arial Bold”, 30))
btn.grid(column=1, row=0)
window.mainloop()
当我们点击按钮后,结果跟我们预期的一样,如下图所示:
使用输入类(Tkinter文本框)获取输入
在前面的Python GUI示例中,我们已经了解了如何添加简单的小部件,现在让我们尝试使用Tkinter输入类(Tkinter文本框)获取用户输入。
您可以使用Tkinter Entry类创建文本框,如下所示:
txt = Entry(window,width=10)
然后您可以像往常一样使用网格功能将其添加到窗口中
完整代码如下:
from tkinter import *
window = Tk()
window.title(“欢迎使用linuxidc.com应用”)
window.geometry(‘600×400’)
lbl = Label(window, text=”Linux公社”, font=(“Arial Bold”, 30))
lbl.grid(column=0, row=0)
txt = Entry(window,width=10)
txt.grid(column=1, row=0)
def clicked():
lbl.configure(text=”linuxidc.com”, bg=”orange”, fg=”red”)
btn = Button(window, text=”点击这里”, command=clicked, bg=”orange”, fg=”red”, font=(“Arial Bold”, 30))
btn.grid(column=2, row=0)
window.mainloop()
现在我们的窗口是这样的:
现在,如果您单击该按钮,它将显示相同的旧消息,但是在Entry小部件上显示输入的文本呢?
首先,您可以使用get函数获取输入文本。 因此,我们可以像下面这样将代码编写到我们clicked的函数中:
def clicked():
res = “欢迎您 ” + txt.get()
lbl.configure(text= res)
如果单击按钮,并且输入框中有文本,它将显示“ 欢迎您”并与输入的文本连接在一起。
以下是完整的代码:
from tkinter import *
window = Tk()
window.title(“欢迎使用linuxidc.com应用”)
window.geometry(‘600×400’)
lbl = Label(window, text=”Linux公社”, font=(“Arial Bold”, 30))
lbl.grid(column=0, row=0)
txt = Entry(window,width=20)
txt.grid(column=1, row=0)
def clicked():
res = “欢迎您 ” + txt.get()
lbl.configure(text= res)
btn = Button(window, text=”点击这里”, command=clicked, bg=”orange”, fg=”red”, font=(“Arial Bold”, 30))
btn.grid(column=2, row=0)
window.mainloop()
效果图如下:
OK,酷不酷。
每次运行代码时,我们都需要单击Entry小部件以设置焦点以编写文本,但是如何自动设置焦点呢?
txt.focus()
而且,当您运行代码时,您会注意到Entry小部件具有焦点,因此您可以现在编写文本来实现。
禁用Entry小部件
要禁用条目窗口小部件,可以将state属性设置为Disabled:
txt = Entry(window,width=10, state=’disabled’)
现在,您将无法输入任何文本。
如下图:
下一节让我们尝试添加更多的GUI小部件(例如添加组合框小部件)。敬请期待。
【跟我学Python GUI编程系列 见 https://www.linuxidc.com/search.aspx?where=nkey&keyword=65442 】
更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.as
转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn