首页 > 编程语言 >Python中的easygui入门

Python中的easygui入门

时间:2023-10-17 17:04:13浏览次数:31  
标签:info 入门 Python EasyGUI choice 学生 查询 easygui

Python中的easygui入门

概述

easygui是一个简单、易用的Python GUI库,它提供了一种简化的界面编程方式,使得用户可以轻松地创建基于文本的交互式对话框。相比于其他复杂的GUI库,easygui的设计目标是简单易懂,降低了学习和使用的门槛,适合于快速开发小型应用或者进行简单的输入输出操作。 在本篇文章中,我们将介绍easygui的基本使用方法,并提供一些示例代码,帮助读者快速入门。

安装

首先,我们需要安装easygui库。使用pip命令来安装:

shellCopy codepip install easygui

基本用法

easygui提供了一些常用的对话框,如文本输入框、选择框、确认框等。下面是一些基本用法的示例代码:

文本输入框

pythonCopy codeimport easygui
name = easygui.enterbox("请输入您的姓名:")
easygui.msgbox("你好," + name + "!")

上述代码中,enterbox函数用于显示一个文本输入框,用户输入内容后,函数返回所输入的内容。msgbox函数用于弹出一个消息框,显示欢迎信息。

选择框

pythonCopy codeimport easygui
choices = ["苹果", "香蕉", "橙子"]
choice = easygui.choicebox("请选择您喜欢的水果:", choices=choices)
easygui.msgbox("您选择的是:" + choice)

上述代码中,choicebox函数用于显示一个选择框,用户从给定的选项中选择一个,函数返回用户的选择结果。msgbox函数同上述示例代码一样,用于弹出一个消息框。

确认框

pythonCopy codeimport easygui
answer = easygui.ynbox("您确认删除这个文件吗?")
if answer:
    easygui.msgbox("文件已删除!")
else:
    easygui.msgbox("已取消删除操作。")

上述代码中,ynbox函数用于显示一个确认框,询问用户是否确认执行某个操作。如果用户点击确认按钮,则answer变量为True,否则为False。根据用户的选择结果,我们使用msgbox函数显示相应的提示信息。

结语

通过本文的介绍,读者应该已经了解了easygui库的基本使用方法。easygui提供了一种简单的方式来创建交互式对话框,帮助我们快速开发基于文本界面的小型应用。 更多关于easygui的使用方法和示例代码,可以查阅官方文档。希望本文能帮助读者在Python中使用easygui轻松实现简单的图形用户界面。

场景背景

假设我们正在开发一个简易的学生信息管理系统,我们希望能够通过easygui库提供的对话框组件,实现学生信息的输入和查询功能。下面将给出示例代码:

示例代码

pythonCopy codeimport easygui
# 创建空的学生信息列表
student_info = []
# 添加学生信息函数
def add_student_info():
    while True:
        # 使用多个输入框获取学生信息
        name = easygui.enterbox("请输入学生姓名:")
        age = easygui.enterbox("请输入学生年龄:")
        major = easygui.enterbox("请输入学生专业:")
        # 将学生信息添加到学生信息列表中
        student_info.append({"姓名": name, "年龄": age, "专业": major})
        # 询问用户是否继续添加学生信息
        again = easygui.ynbox("是否继续添加学生信息?")
        if not again:
            break
# 查询学生信息函数
def search_student_info():
    # 使用选择框让用户选择按照姓名还是专业查询
    choice = easygui.buttonbox("请选择查询方式:", choices=["按姓名查询", "按专业查询"])
    
    if choice == "按姓名查询":
        name = easygui.enterbox("请输入学生姓名:")
        result = [info for info in student_info if info["姓名"] == name]
        
    elif choice == "按专业查询":
        major = easygui.enterbox("请输入学生专业:")
        result = [info for info in student_info if info["专业"] == major]
    if result:
        # 如果查询结果不为空,显示查询结果
        msg = "查询结果:\n\n"
        for info in result:
            msg += f"姓名:{info['姓名']}\n年龄:{info['年龄']}\n专业:{info['专业']}\n\n"
        easygui.msgbox(msg)
    else:
        # 如果查询结果为空,显示未找到提示
        easygui.msgbox("未找到符合条件的学生信息。")
# 主菜单函数
def main_menu():
    while True:
        choice = easygui.buttonbox("请选择操作:", choices=["添加学生信息", "查询学生信息", "退出"])
        if choice == "添加学生信息":
            add_student_info()
        elif choice == "查询学生信息":
            search_student_info()
        elif choice == "退出":
            break
# 主函数
if __name__ == "__main__":
    main_menu()

结果展示

运行上述代码后,会弹出一个易于操作的文本式界面,用户可以选择添加学生信息、查询学生信息或退出程序。用户在选择添加学生信息时,可以逐个输入学生的姓名、年龄和专业,直到用户不再添加为止。在查询学生信息时,用户可以选择按照姓名或者专业进行查询,并输入相应的查询条件。最后,查询结果会以弹出框的形式展示给用户。 希望以上示例代码能帮助读者理解如何在实际应用场景中使用easygui库实现交互式操作。在实际开发中,可以根据需要进行适当的扩展和优化。更多关于easygui库的使用方法和示例代码,可以查阅其官方文档。

EasyGUI 是一个Python库,用于创建简单的图形用户界面(GUI)。尽管 EasyGUI 提供了一种简单的方法来创建用户界面,但它也存在一些缺点。以下是 EasyGUI 的一些缺点:

  1. 功能有限:EasyGUI 是一个轻量级库,主要专注于提供简单的对话框、按钮和输入框等基本组件。相比于其他功能更为强大的 GUI 库,它的功能相对较有限。如果你需要更复杂的用户界面功能,EasyGUI 可能不能满足你的需求。
  2. 外观限制:EasyGUI 的外观风格比较简单,并且没有提供自定义界面的选项。如果你希望创建更具个性化和专业感的用户界面,EasyGUI 的外观限制可能让你感到不满意。
  3. 不够灵活:EasyGUI 的设计目标是简单且易于使用,因此它不够灵活。这意味着在复杂的应用场景下,你可能需要做很多的变通来实现你想要的效果。如果你需要更多灵活性和自定义性,可能需要考虑其他更强大的 GUI 库。 与 EasyGUI 类似的库包括 Tkinter、PyQt、wxPython 等。这些库相对于 EasyGUI 来说更具有功能和灵活性。以下是一些类似于 EasyGUI 的库:
  4. Tkinter:Tkinter 是 Python 的标准图形用户界面库,它相对容易上手,提供了更丰富的组件和布局选项。它支持多个平台,并且具有丰富的文档和社区支持。
  5. PyQt:PyQt 是一个基于 Qt 库的 Python 绑定库,它提供了丰富的功能和灵活性,能够创建复杂的用户界面。PyQt 具有相对较大的学习曲线,但它提供了强大的工具和功能,可以满足更高级的需求。
  6. wxPython:wxPython 是一个基于 wxWidgets 库的 Python 绑定库,它提供了丰富的跨平台用户界面开发工具。wxPython 提供了多种控件和布局选项,支持自定义和个性化界面的创建。 这些库相对于 EasyGUI 来说更加强大和灵活,但同时也更复杂一些。所以,在选择库时,需要根据项目需求和个人技能水平来判断使用哪个库。

标签:info,入门,Python,EasyGUI,choice,学生,查询,easygui
From: https://blog.51cto.com/u_15702012/7907757

相关文章

  • Python中的NirCmd入门
    Python中的NirCmd入门简介NirCmd是一个强大的命令行实用工具,可在Windows系统上执行各种系统操作和任务。它可以用于执行诸如调整音量、打开网站、控制窗口、发送键盘鼠标输入等常见任务。虽然NirCmd是一个独立的可执行文件,但我们可以使用Python来调用它并将其集成到我们的脚本中。......
  • python练习.5
    问:计算并输出100-200不能被三整除的整数的和voidtest1(){ intarr[10]={2,3,1,4,5,7,6,8,9,10}; intsi=sizeof(arr)/sizeof(arr[0]); qsort(arr,si,sizeof(arr[0]),ayue2); qsort(arr,si,sizeof(arr[0]),ayue3); inti=0; for(i=0;i<si;i++)......
  • Intel发布入门级至强E-2400:13代酷睿师弟、砍掉小核
    Intel刚刚推出了首批14代酷睿处理器,但是13代又有了新的衍生版,面向入门级服务器和工作站的至强E-2400系列。至强E系列的节奏一直很慢,基本两年一代:2019年的E-2200系列源自8/9代酷睿,2021年的E-2300系列来自11代酷睿。最新的至强E-2400系列还没有正式发布,官方产品库里也找不到,但是......
  • 【Python&语义分割】Segment Anything(SAM)模型交互式分割+掩膜保存(三)
    ​我之前分享了SegmentAnything(SAM)模型的基本操作,这篇给大家分享下交互式语义分割代码,可以通过鼠标点击目标物生成对应的掩膜,同时我还加入了掩膜保存的代码。1SegmentAnything介绍1.1概况        MetaAI公司的SegmentAnything模型是一项革命性的技术,该模型能......
  • 【Python微信机器人】第一篇:在windows11上编译python
    前言我打算写一个系列,内容是将python注入到其他进程实现inlinehook和主动调用。本篇文章是这个系列的第一篇,后面用到的案例是注入python到PC微信实现基本的收发消息。文章着重于python方面的内容,所以对于微信找收发消息的call不会去讲过程,有兴趣的可以直接百度搜PC微信逆向。我......
  • Spark入门运行wordcount
    在spark集群上跑一个程序首先保证下面进程开启zookeeperhdfsspark首先是父类的依赖<properties><scala.version>2.11.8</scala.version><spark.version>2.2.2</spark.version><hadoop.version>2.7.6</hadoop.version></pro......
  • python连接数据库
    importpymysqlfrompymysql.constantsimportCLIENT'''pymysql执行多条SQL语句8.0版本之后需要在建立连接的时候添加参数client_flag=CLIENT.MULTI_STATEMENTS'''#打开数据库连接db=pymysql.connect(host='localhost',user='root',......
  • 【原型链污染】Python与Js
    【原型链污染】Python与Js一、背景最近在TSCTF的比赛题中遇到了Python的原型链污染题目,所以借此机会学习一下。说到原型链,最多的还是在Js中,所以就一并学习一下。(因为是菜鸡所以文章可能的存在一些错误,欢迎批评指正)。二、JS原型链简介原型是Js代码中对象的继承方式。其实和别的......
  • python链接mongodb的问题
    python链接mongodb需要指定数据库importpymongomonclient=pymongo.MongoClient("mongodb://用户名:密码@192.168.10.200:27017/数据库名")mondb=monclient["数据库名"]moncol=mondb["表名"]网上很多资料都没有指定数据库名,导致后续操作提示没有权限......
  • python 封装日志logging
    #!/usr/bin/python#-*-coding:utf-8-*-importloggingimporttimeimportosclassLog(object):'''封装后的logging'''def__init__(self,logger=None,log_cate='search'):'''......