• Python --- GUI编程(1)


    GUI(Graphics User Interface)图形化用户界面编程

    GUI编程类似于"搭积木",将一个个的组件放到窗口中,并给各 个组件赋予相应的事件绑定

    常用的GUI库

    1. Tkinter
      是python标准的GUI库,支持跨平台的GUI开发,Tkinter适合小型的GUI程序
    2. wxPython
      比较流行的GUI库适合大型的应用程序开发,功能强于Tkinter整体框架类似于MFC
    3. PyQT
      Qt是一个开源的额GUI库,适合大型的GUI程序开发,PyQT 是Qt工具包的Python实现,我们也可以使用Qt Desginter页面设计器快速开发GUI应用程序

    使用 tkinter 包开发第一个程序
    tkinter 包 (“Tk 接口”) 是针对 Tcl/Tk GUI 工具包的标准 Python 接口。 Tk 和 tkinter 在大多数 Unix 平台,包括 macOS,以及 Windows 系统上均可使用。
    导包

    from tkinter import *
    from tkinter import messagebox
    
    • 1
    • 2

    实例化窗口对象

    root = Tk()
    
    • 1

    设置窗口的大小和位置

    geometry(widthxheight+x+y) 距离左面和上面的距离,里面参数如果是widthxheight-x-y 就是距离屏幕右边和下面的距离,也可以混用 +x-y距离左下,-x+y距离右上的

    root.title("我的的第一个GUI程序")
    # 参数的格式为:widthxheight+x+y
    root.geometry("500x300+100+200")
    
    • 1
    • 2
    • 3

    添加按钮组件

    btn01 = Button(root)
    btn01["text"] = "按钮"
    # 布局管理器,按顺序添加组件
    btn01.pack()
    
    • 1
    • 2
    • 3
    • 4

    绑定事件对象

    def songhua(e):   # e就是事件对象
        # 弹出框
        messagebox.showinfo("Message","按钮的相应事件")
        print('按钮被点击')
    
    # "" 鼠标左击
    btn01.bind("",songhua)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    显示窗口

    # 进入事件循环显示窗口,调用它才会看到窗口
    root.mainloop()
    
    • 1
    • 2

    效果图
    在这里插入图片描述

    相应事件

    在这里插入图片描述

    完整的源码

    from tkinter import *
    from tkinter import messagebox
    
    # 实例化一个窗口对象
    root = Tk()
    
    # 设置窗口的标题
    root.title("我的的第一个GUI程序")
    # 设置窗口的大小和位置
    # 参数的格式为:widthxheight+x+y
    root.geometry("500x300+100+200")
    
    btn01 = Button(root)
    btn01["text"] = "按钮"
    # 布局管理器,按顺序添加组件
    btn01.pack()
    
    
    def songhua(e):   # e就是事件对象
        # 弹出框
        messagebox.showinfo("Message","按钮的相应事件")
        print('按钮被点击')
    
    # "" 鼠标左击
    btn01.bind("",songhua)
    # 进入事件循环显示窗口,调用它才会看到窗口
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
  • 相关阅读:
    SAP 标准表
    传奇游戏常见问题解决办法
    LeetCode 191. 位1的个数
    项目启动端口被占用 -- Web server failed to start. Port 8082 was already in use.
    Docker安装ClickHouse22.6.9.11并与SpringBoot、MyBatisPlus集成
    低功耗引擎 Cliptrix 有什么价值
    Day13-Linux系统用户管理知识精讲2
    nvm的下载,安装与使用详解
    基于STM32的外部中断(EXTI)在嵌入式系统中的应用
    SpringBoot 访问接口记录日志的保存和定时清理日志
  • 原文地址:https://blog.csdn.net/qq_52007481/article/details/126793561