模块_tkinter

最前面的

最近发现有大量笔记是冗余的,它们分布在有道云笔记,云盘,电脑手机里。以word,txt,md等形式存在。查找起来非常不便。
我打算把他们收集到一起统一管理。
这篇是很久以前关于tkinter的一些使用时的记录。
参考

模板

路径选择框

1
2
3
4
5
6
7
8
import tkinter as tk
from tkinter import filedialog

'''打开选择文件夹对话框'''
root = tk.Tk()
root.withdraw()
FolderPath=filedialog.askdirectory() # 选择文件夹,
FilePath=filedialog.askopenfilename() # 选择文件

控件使用

建立一个窗口

定义 window 窗口 和 window的一些属性

1
2
3
4
5
6
7
8
9
10
11
12
import tkinter as tk

window = tk.Tk()
window.title('my window') #窗口的标题
window.geometry('500x500') #窗口的大小

"""
在这里插入控件
"""

## 显示出来
window.mainloop()

定义一个lable

  1. 内容固定的lable

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    l = tk.Label(window, 
    text='标签内容', # 标签的文字
    bg='green', # 标签背景颜色
    font=('宋体', 13), # 字体和字体大小
    width=15, height=2, # 标签内容区大小(以字符长度计算)
    # padx=10, pady=15,borderwidth=10, relief="sunken" # 设置填充区距离、边框宽度和其样式(凹陷式)
    )

    l.config(text='标签内容2') # 重新设置lable值
    l.pack() # 固定窗口位置

    l.place(x=10, y=10) # 移动标签位置
  2. 内容可变的lable

    1
    2
    3
    4
    5
    6
    7
    8
    9
    '''lable'''
    var = tk.StringVar() # 文字变量储存器
    l = tk.Label(window,
    textvariable=var, # 使用 textvariable 替换 text, 因为这个可以变化
    bg='green', font=('Arial', 12), width=15, height=2)
    l.pack()
    var.set('you hit me') # 设置标签内容

    l.place(x=10, y=10) # 移动标签位置到窗口左上角

按钮

1
2
3
4
5
6
7
8
9
def hit_me():          # 点击按钮执行的函数
print("点击了按钮啦")
'''按钮'''
b = tk.Button(window,
text='hit me', # 显示在按钮上的文字
width=15, height=2,
command=hit_me) # 绑定函数,函数不能带参数。
b.pack() # 固定位置
b.place(x=10, y=10) # 移动按钮位置

密码输入框(用户输入任何内容都显示为*)

  1. 显示输入框
    1
    2
    e = tk.Entry(window,show='*')
    e.pack()
  2. 获得输入值(放到其他控件的触发函数里输出)
    1
    2
    def hit_me():          # 按钮事件触发函数
    print(e.get())

文本框

  1. 创建文本框
    1
    2
    3
    t = tk.Text(window,height=15,width=30)  # 文本框大小(占多少字符)
    t.pack()
    t.place(x=0, y=0) # 移动按钮位置
  2. 获得输入值(放到其他控件的触发函数里输出)
    1
    2
    def hit_me():          # 点击按钮执行的函数
    print(t.get("0.0","end"))

列表

  1. 创建列表
    1
    2
    3
    4
    5
    6
    7
    8
    var2 = tk.StringVar()  # 创建一个变量var2
    var2.set((1,2,3,4)) #为变量设置值

    # 将var2作为列表的默认值,允许列表多选
    lb = tk.Listbox(window, listvariable=var2,selectmode=tk.MULTIPLE)
    lb.pack() # 显示出来

    lb.place(x=50, y=60) # 移动位置
  2. 更改列表值
    1
    2
    3
    4
    lb.insert('end', "zero")  #从最后一个位置开始加入值
    lb.insert(1, 'first') #在第一个位置加入'first'字符
    lb.insert(2, 'second') #在第二个位置加入'second'字符
    lb.delete(2) #删除第二个位置的字符
  3. 获得输入值(放到其他控件的触发函数里输出)
    1
    2
    3
    4
    5
    def hit_me():          # 点击按钮执行的函数
    selected_indices = lb.curselection()
    selected_values = [lb.get(index) for index in selected_indices]
    print(selected_indices) # 返回包含选中值下标的元组
    print(selected_values) # 返回包含选中值的列表

radiobutton 部件

  1. 创建控件
    当我们鼠标选中了其中一个选项,把value的值A放到变量var中
    1
    2
    3
    4
    5
    6
    7
    8
    var = tk.StringVar()   # 创建一个StringVar变量以存储单选按钮的值
    var.set(None) # 设置初始值

    r1 = tk.Radiobutton(window, text='选择 A',variable=var, value='A')
    r1.pack()

    r2 = tk.Radiobutton(window, text='选择 B',variable=var, value='B')
    r2.pack()
  2. 获得输入值(放到其他控件的触发函数里输出)、
    1
    2
    def hit_me():          # 点击按钮执行的函数
    print(var.get())