Tkinter教程

发布于:2024-08-12 ⋅ 阅读:(133) ⋅ 点赞:(0)

Tkinter

本文简单介绍了tkiner库的使用, 适合初学者入门, 适合用来做小工具, 比如计算器, 简单的GUI等.
从目录我们可以找到Tkiner主要包括两部分一个是主体框架,一个是窗口内容,接下来我们一起看看。

参考博客【Python】Tkinter教程

由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。

在下一篇文章中我们将使用Tkinter、socket、threading实现用python模拟多人聊天服务器以及客户端

import tkinter

top = tkinter.Tk()
#进入消息循环
top.mainloop()

在这里插入图片描述

窗口主体框架

每一个 tkinter 应用的主体框架都可以包含下面这部分. 定义 window 窗口 和 window的一些属性, 然后书写窗口内容, 最后执行window.mainloop让窗口活起来.

import tkinter as tk

window = tk.Tk()
window.title('my window')
window.geometry('500x500') #注意是x不是*
window.mainloop()

在这里插入图片描述

窗口内容

1. Label & Button(标签和按钮)

这次我们会建立一个用来描述的标签 tk.Label, 比如:

import tkinter as tk

window = 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_hit
    if on_hit == False:
        on_hit = True
        var.set('You hit me')
    else:
        on_hit = False
        var.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 tk

window = 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 tk

window = 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 tk

window = 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模拟多人聊天服务器以及客户端


网站公告

今日签到

点亮在社区的每一天
去签到