前言
前段时间自己因为自己的小项目,自己需要搞个GUI界面来,不然在调试窗口总是不舒服。
在查找的过程中呢,发现对于tkinter最全的就是一个英文网站,自己感觉相当于英文版的菜鸟教程,自己英语也不是太好,也感受到了英语不好的恶意。。。
最后自己零零碎碎找了一些,自己整理了出来。
tkinter的一些控件介绍
首先,tkinter 是python的默认GUI工具集(内置模块),可移植性和可执行性很好,比较流行的GUI库,优点是跨平台,缺点是运行的速度不够快。,注意Python 2和Python 3的tkinter不同,这里自己使用的是Python 3。(python2这个模块叫Tkinter,python3是tkinter)
tkinter有很多控件,自己收藏了一个大佬的一个系列,这里我们一一列出他原创的目录:
tkinter 组件:
- Label
- Button
- CheckButton
- RadioButton
- Frame
- LabelFrame
- Entry
- Listbox
- Scrollbar
- Scale
- Text
- Canvas
- Menu
- Menubutton
- OptionMenu
- Message
- Spinbox
- PanedWindow
- Toplevel
tkinter 布局管理器:
- pack
- grid
- place
tkinter一些其他的东西:
- 事件绑定
- Tk(根目录)和Toplevel(顶级窗口)方法汇总
- 标准对话框
大佬系列文章的链接:
https://blog.csdn.net/qq_41556318/category_9283243.html
PS:侵权,私聊,删
补充
tkinter 里还有一些组件,自己当时搞小项目的时候也用到过,这里也分享出来。
ttk 的Combobox
这是一个下拉选框,tk 的 Listbox 是一直处于下拉状态的,并不是当时我想呈现的一个效果,自己找了一下,找到了这个Combobox组件。
from tkinter import ttk
import tkinter as tk
time_list = [10, 20, 30, 40]
top = tk.Tk()
top.title('Test')
top.geometry('400x200')
# Label-时间
label_time = tk.Label(top, text="时间: ", font='宋体 12', height='1')
label_time.place(x=100, y=50, anchor='nw')
# Combobox-选择时间
combobox_chose = ttk.Combobox(top, value=time_list, state='readonly')
combobox_chose.set('请选择时间')
combobox_chose.place(x=150, y=50, width="160", anchor='nw')
# 按键事件
def comment():
var = tk.StringVar()
label_tip = tk.Label(top, textvariable=var, font='宋体 12', height='1', bg='red', fg='white')
var.set('选择的时间是' + str(combobox_chose.get()))
label_tip.place(x=140, y=150, anchor='nw')
# Button-确认
button_ok = tk.Button(top, text='开始点名', width=15, height=1, command=comment)
button_ok.place(x=140, y=100, anchor='nw')
top.mainloop()
这一段是自己写的,大家可以自己复制试试,Combobox 是下拉输入框。
像上面给出的大佬的系列链接,其中的messagebox消息框就是ttk的一员,导入的时候需要单独写出来from tkinter import messagebox
,ttk 虽然也是tkinter的一部分,但是调用的时候还是要再写一下的。
最后
自己用tkinter写的小程序调试还是失败了,这里就不给大家贴出来了,卡在了tkinter的事件触发,按键触发的效果和期望的效果差了很多。
后来找了找原因,发现学习一个模块,最好系统的学习,不然前后代码思想会不一致,前面代码会产生很多小错误,就像一开始自己只知道Tk()创建窗口,导致自己多窗口弹出,一个quit()
就全部关闭,产生了自己不想得到的触发事件。后来才知道,Toplevel()
这个东西。
看完有收获记得点赞,上面给出的大佬对tkinter整理的合集真的挺有用,自己看了几篇收获很多,可以收藏一下。