跟我学Python GUI编程系列 - Tkinter(2)
跟我学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('600x400')
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="Button was clicked !!")
然后,通过指定如下函数,将其与按钮连接:
btn = Button(window, text= "Click Me", command=clicked)
注意,我们用括号输入了clicked而不是clicked()。
现在完整的代码将是这样的:
from tkinter import *
window = Tk()
window.title("欢迎使用linuxidc.com应用")
window.geometry('600x400')
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('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():
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('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()
效果图如下:
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
- python应用系列教程——python的GUI界面编程Tkinter全解
- Python -- Gui编程 -- Tkinter的使用 -- 菜单与画布
- Python-GUI编程之 Tkinter 与 记事本实现心得
- python GUI编程(Tkinter)简单使用
- python之GUI(tkinter、ttk)编程学习笔记(自用)
- 鱼c笔记——Python的GUI编程(十):Tkinter的组件Menu、Menubutton和OptionMenu
- python GUI编程(Tkinter)(高级教程)
- Python GUI编程(Tkinter)
- Python中基于tkinter的GUI编程的基本概念与实例
- 【脚本语言系列】关于PythonGUI编程wxPython, 你需要知道的事
- Python Tkinter GUI编程入门介绍
- python的GUI编程(Tkinter库)(三)
- pythonGUI编程-tkinter
- Python -- Gui编程 -- Tkinter的使用 -- 对话框消息框
- python的GUI编程(Tkinter库)(一)
- python入门系列20―——GUI Tkinter入门
- Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
- 关于Python GUI编程_tkinter工具
- Python GUI编程之 Tkinter 菜单
- Python GUI编程学习笔记之tkinter事件绑定操作详解