python GUI之tkinter整理

前言

前段时间自己因为自己的小项目,自己需要搞个GUI界面来,不然在调试窗口总是不舒服。
在查找的过程中呢,发现对于tkinter最全的就是一个英文网站,自己感觉相当于英文版的菜鸟教程,自己英语也不是太好,也感受到了英语不好的恶意。。。
最后自己零零碎碎找了一些,自己整理了出来。

tkinter的一些控件介绍

首先,tkinter 是python的默认GUI工具集(内置模块),可移植性和可执行性很好,比较流行的GUI库,优点是跨平台,缺点是运行的速度不够快。,注意Python 2和Python 3的tkinter不同,这里自己使用的是Python 3。(python2这个模块叫Tkinter,python3是tkinter)
tkinter有很多控件,自己收藏了一个大佬的一个系列,这里我们一一列出他原创的目录:

tkinter 组件:

  1. Label
  2. Button
  3. CheckButton
  4. RadioButton
  5. Frame
  6. LabelFrame
  7. Entry
  8. Listbox
  9. Scrollbar
  10. Scale
  11. Text
  12. Canvas
  13. Menu
  14. Menubutton
  15. OptionMenu
  16. Message
  17. Spinbox
  18. PanedWindow
  19. Toplevel

tkinter 布局管理器:

  1. pack
  2. grid
  3. place

tkinter一些其他的东西:

  1. 事件绑定
  2. Tk(根目录)和Toplevel(顶级窗口)方法汇总
  3. 标准对话框

大佬系列文章的链接:
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整理的合集真的挺有用,自己看了几篇收获很多,可以收藏一下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值