设为首页 加入收藏

TOP

跟我学Python GUI编程系列 - Tkinter(2)
2023-07-26 08:18:27 】 浏览:236
Tags:Python GUI 程系列 Tkinter

在本系列教程中,我们将学习如何通过使用Tkinter包编写Python GUI示例来开发图形用户界面。


添加按钮小部件


让我们从将按钮添加到窗口开始。创建按钮并添加到窗口的方式与标签相同:


btn = Button(window, text="点击这里")


btn.grid(column=1, row=0)


现在,我们的窗口将如下所示:


结果看起来是这样的:


跟我学Python GUI编程系列 - Tkinter(2)


请注意,我们将按钮放置在窗口的第二列(即1)上。如果您忘记并将按钮放置在同一列(即0)上,它将只显示该按钮,因为该按钮将位于标签的顶部。


更改按钮前景色和背景色


您可以使用fg属性更改按钮或任何其他小部件的前景色。


此外,您还可以使用bg属性更改任何小部件的背景颜色。


btn = Button(window, text="点击这里", bg="orange", fg="red", font=("Arial Bold", 30))


效果如下图:


跟我学Python GUI编程系列 - Tkinter(2)


现在,如果您尝试单击该按钮,则不会发生任何事情,因为尚未编写该按钮的click事件。


处理按钮单击事件


首先,我们将编写单击按钮时需要执行的函数:


def clicked():


然后,通过指定如下函数,将其与按钮连接:


btn = Button(window, text="点击这里", command=clicked, bg="orange", fg="red", font=("Arial Bold", 30))


注意,我们用括号输入了clicked而不是clicked()。


现在完整的代码将是这样的:


def clicked():


btn = Button(window, text="点击这里", command=clicked, bg="orange", fg="red", font=("Arial Bold", 30))
btn.grid(column=1, row=0)
window.mainloop()


当我们点击按钮后,结果跟我们预期的一样,如下图所示:


跟我学Python GUI编程系列 - Tkinter(2)


使用输入类(Tkinter文本框)获取输入


在前面的Python GUI示例中,我们已经了解了如何添加简单的小部件,现在让我们尝试使用Tkinter输入类(Tkinter文本框)获取用户输入。


您可以使用Tkinter Entry类创建文本框,如下所示:


txt = Entry(window,width=10)


然后您可以像往常一样使用网格功能将其添加到窗口中


完整代码如下:


from tkinter import *


window = Tk()


window.geometry('600x400')


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():


btn = Button(window, text="点击这里", command=clicked, bg="orange", fg="red", font=("Arial Bold", 30))


btn.grid(column=2, row=0)


window.mainloop()


现在我们的窗口是这样的:


跟我学Python GUI编程系列 - Tkinter(2)


现在,如果您单击该按钮,它将显示相同的旧消息,但是在Entry小部件上显示输入的文本呢?


首先,您可以使用get函数获取输入文本。 因此,我们可以像下面这样将代码编写到我们clicked的函数中:


def clicked():


    res = "欢迎您 " + txt.get()


    lbl.configure(text= res)


如果单击按钮,并且输入框中有文本,它将显示“ 欢迎您”并与输入的文本连接在一起。


以下是完整的代码:


from tkinter import *


window = Tk()


window.geometry('600x400')


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()


效果图如下:


跟我学Python GUI编程系列 - Tkinter(2)


OK,酷不酷。


每次运行代码时,我们都需要单击Entry小部件以设置焦点以编写文本,但是如何自动设置焦点呢?


txt.focus()


而且,当您运行代码时,您会注意到Entry小部件具有焦点,因此您可以现在编写文本来实现。


禁用Entry小部件


要禁用条目窗口小部件,可以将state属性设置为Disabled:


txt = Entry(window,width=10, state='disabled')


现在,您将无法输入任何文本。


如下图:


跟我学Python GUI编程系列 - Tkinter(2)


下一节让我们尝试添加更多的GUI小部件(例如添加组合框小部件)。敬请期待。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java AES加密算法工具类 下一篇Java 8 ThreadLocal 源码解析

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目