Tkinter教程
Tkinter
文章目录
- Tkinter
- 窗口主体框架
- 窗口内容
- 1. Label & Button(标签和按钮)
- 2. Button
- 3. Entry & Text(输入 文本框)
- 窗口主题框架
- 窗口内容(窗口上的控件)
- 4. Listbox(列表框)
- 5. Radiobutton 选择按钮
本文简单介绍了tkiner库的使用, 适合初学者入门, 适合用来做小工具, 比如计算器, 简单的GUI等.
从目录我们可以找到Tkiner主要包括两部分一个是主体框架
,一个是窗口内容
,接下来我们一起看看。
参考博客【Python】Tkinter教程
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
在下一篇文章中我们将使用
Tkinter、socket、threading
实现用python模拟多人聊天服务器以及客户端
import tkintertop = tkinter.Tk()
#进入消息循环
top.mainloop()
窗口主体框架
每一个 tkinter 应用的主体框架都可以包含下面这部分. 定义 window 窗口 和 window的一些属性, 然后书写窗口内容, 最后执行window.mainloop
让窗口活起来.
import tkinter as tkwindow = tk.Tk()
window.title('my window')
window.geometry('500x500') #注意是x不是*
window.mainloop()
窗口内容
1. Label & Button(标签和按钮)
这次我们会建立一个用来描述的标签 tk.Label
, 比如:
import tkinter as tkwindow = tk.Tk()
window.title('my window')
window.geometry('500x500')
l = tk.Label(window,text= 'Hello, This is Tkinter',bg = 'pink',font=('Arial', 12),width=15, height=2)l.pack()window.mainloop()
2. Button
window = tk.Tk()
window.title('my window')
window.geometry('500x500')# 定义一个label
var = tk.StringVar()
l = tk.Label(window,textvariable=var,bg = 'pink',font=('Arial', 12),width=15, height=2)
l.pack()on_hit = False# 定义一个按钮
def hit_on():global on_hitif on_hit == False:on_hit = Truevar.set('You hit me')else:on_hit = Falsevar.set('')b = tk.Button(window,text='点我',width=15,height=2,command=hit_on)
b.pack()window.mainloop()
点击之后:
3. Entry & Text(输入 文本框)
窗口主题框架
每一个tkinter应用的主体框架都包含以下几部分:
- 主窗口: window,及窗口的一些基本属性(标题、大小)
- 让窗口活起来: window.mainloop()
import tkinter as tkwindow = tk.Tk()
window.title('my window')# 窗口尺寸
window.geometry('500x500')# 显示出来
window.mainloop()
窗口内容(窗口上的控件)
- 创建按钮分别触发两种情况
b1 = tk.Button(window,text='insert point',width=15,height=2,command=insert_point)
b1.pack()b2 = tk.Button(window,text='insert end',width=15,height=2,command=insert_end)
b2.pack()
- 创建输入框entry, 用户输入任何内容都显示为*
e = tk.Entry(window, show='*')
e.pack()
- 创建一个文本框用于显示
t = tk.Text(window, height=2)
t.pack()
- 定义触发事件的函(注意:函数Python的执行顺序从上往下,所以函数一定要放在按钮上面)
def insert_point():var = e.get()t.insert('insert', var)def insert_end():var = e.get()t.insert('end', var)
- 完整代码
import tkinter as tk
window = tk.Tk()
window.title('my window')# 窗口尺寸
window.geometry('500x500')# 定义一个输入框entry
e = tk.Entry(window,show='None')
e.pack()# 定义按钮功能
def insert_point():var = e.get()t.insert('insert', var)def insert_end():var = e.get()t.insert('end', var)# 定义按钮
b1 = tk.Button(window,text='insert point',width=15,height=2,command=insert_point)
b1.pack()b2 = tk.Button(window,text='insert end',width=15,height=2,command=insert_end
)
b2.pack()# 定义文本框
t = tk.Text(window, height=2)
t.pack()# 窗口显示
window.mainloop()
4. Listbox(列表框)
import tkinter as tkwindow = tk.Tk()
window.title('my window')
window.geometry('500x500')# 创建一个label
var1 = tk.StringVar()l = tk.Label(window,bg='pink',width=4,textvariable=var1)
l.pack()# 按钮事件
def print_selection():value = lb.get(lb.curselection())var1.set(value)# 创建一个按钮
b1 = tk.Button(window,text='print selection',width=15,height=2,command=print_selection
)
b1.pack()# 创建一个Listbox和变量var2,并将var2的值赋给Listbox
var2 = tk.StringVar()
var2.set((11, 22, 33, 44))# 创建Listbox
lb = tk.Listbox(window,listvariable=var2
)# 创建一个list并将值循环添加到Listbox控件中
list_items = [1, 2, 3, 4]
for item in list_items:lb.insert('end', item)
lb.insert(1, 'first') #向lb(Listbox)中添加值
lb.insert(2, 'second')
lb.delete(2)
lb.pack()window.mainloop()
5. Radiobutton 选择按钮
import tkinter as tkwindow = tk.Tk()
window.title('my window')
window.geometry('200x200')# 创建一个Label
var = tk.StringVar()
l = tk.Label(window, bg = 'yellow',width = 20,height= 2,text = 'empty')
l.pack()# 实现将选择的选项显示在label
def print_selection():l.config(text='you have selected ' + var.get())# 创建几个Radiobutton
r1 = tk.Radiobutton(window,text='Option A',variable=var,value='A',command=print_selection)
r1.pack()r2 = tk.Radiobutton(window,text='Option B',variable=var,value='B',command=print_selection
)
r2.pack()r3 = tk.Radiobutton(window,text='Option C',variable=var,value='C',command=print_selection
)
r3.pack()window.mainloop()
接下里我们将使用Tkinter、socket、threading
实现用python模拟多人聊天服务器以及客户端