zoukankan      html  css  js  c++  java
  • PythonのTkinter基本原理

    本文讲解,Python Tkinter 库,的基本原理,白话讲解,面向小白。


    Tkinter 是什么:

    Tkinter 是 Python 自带的一个,标准库,用于快速创造,简单的 GUI 程序。

    为什么要了解 Tkinter:

    首先,因为这个库,是 Python 自带的,所以非常方便,随叫随到的那种;再者,总体上讲,Tkinter 的功能还是比较全面的,例如:button,lable,textbox 什么的,都很全面(熟悉 VBA 的同学应该可以想象出来这些功能,就和 Userform 上面的东西是一样的)。所以,要是只想写个日常的小程序什么的,这些功能已经是很足够了。

    Tkinter 的基本思路:

    首先,先来看段代码,然后根据代码,再来一层一层的讲解:

    import tkinter as tk
    
    # 1.创造一个窗口
    Window = tk.Tk()
    
    # 2.创造一个 Lable 组件,和一个 Button 组件
    label = tk.Label(Window,text = "Hello")
    butoon = tk.Button(Window,text = "TapMe")
    
    # 3.把上面两个组件,放到窗口中
    label.pack()
    butoon.pack()
    
    # 4.让窗口,一直的显示在桌面,不要关闭
    Window.mainloop()
    

    这段代码中的 Comments,就是实现的过程,或者步骤;这就是 Tkinter 基本原理,基本思路。

    代码拆解:

    如果,我们只运行这段代码的话,看到的就只是一个空旷的窗口,什么都没有,就长成下面图片的样子;如果这段代码,没有加上最后的那个Window.mainloop()的话,窗口虽然也能创造出来,但是会闪一下就消失了,或者消失的太快了,你都没看到他闪过。所以必须要加上个 loop,让窗口留在桌面!这一步,是所有 Tkinter GUI 程序固有的第一步!

    import tkinter as tk
    Window = tk.Tk()
    Window.mainloop()
    


    然后,我们在来看中间这两段代码。在 Tkinter 中所有东西都是组件(Widget),每当你要添加一个组件的时候,思路都是同样的“两步走”:先创建这个组件,然后把这个组件放进窗口。就是这个套路。

    # 2.创造一个 Lable 组件,和一个 Button 组件
    label = tk.Label(Window,text = "Hello")
    butoon = tk.Button(Window,text = "TapMe")
    
    # 3.把上面两个组件,放到窗口中
    label.pack()
    butoon.pack()
    

    当我们在把 button 啊,lable 啊,什么的,各种想要的组件,都按照“两步走”的方式,加进去了之后,运行完整的代码,就会看到下面这个小窗口;当然,你可以往里面添加各种组件,变得更复杂,还可以设计背景,调整颜色,变得更好看;但是,Tkinker 的基本原理,都是相同的。


    好吧,就这些了;文章比较简短,虽然只是一个精简的介绍,但可以帮助小白直接抓到重点!



    附赠:弹出 MessageBox 和 OpenFile Dialog

    另外,Tkinter 还可以,弹出 Message Box,和 Open File Dialog(是不是,超级像 VBA),实现方法也超级简单,代码如下:

    # 弹出 Message Box 时,关闭背景窗口
    import tkinter
    Window = tkinter.Tk()
    Window.withdraw()
    
    # 弹出 Message Box
    from tkinter import messagebox
    messagebox.showinfo(title="", message="Hello World!")
    
    # 弹出 OpenFile Dialog
    from tkinter import filedialog
    filedialog.askopenfilename()
    

    OK,是不是已经感觉到了,超级好用!哈哈,好吧,小白贡献,语失莫怪,希望对大家有帮助。
    喜欢我的博客请来关注哦:Bitssea
    (^_^)



  • 相关阅读:
    高性能计算发展简史
    软件里有“slave”关键字算不算种族歧视
    LAXCUS集群的松耦合和紧耦合性能对比
    《操作系统》课程笔记(Ch12-大容量存储结构)
    《剑指Offer》部分简单题题解
    ASP.Net Core 5.0 MVC中AOP思想的体现(五种过滤器)并结合项目案例说明过滤器的用法
    扒一扒 剪视频-致力打造最好用的视频创作导航
    C#设计模式02——原型模式的写法
    C#设计模式03——简单工厂的写法
    C#设计模式04——工厂方法的写法
  • 原文地址:https://www.cnblogs.com/bitssea/p/12996226.html
Copyright © 2011-2022 走看看