范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

丢弃Tkinter,这款GUI神器值得拥有

  作者:闲欢
  来源:Python 技术
  GUI是一个人机交互的界面,换句话说,它是人类与计算机交互的一种方法。GUI主要使用窗口,图标和菜单,也可以通过鼠标和键盘进行操作。
  GUI库包含部件。部件是一系列图形控制元素的集合。在构建GUI程序时,通常使用层叠方式。众多图形控制元素直接叠加起来。
  当使用python编写应用程序时,你就必须使用GUI库来完成。对于Python GUI库,你可以有很多的选择。
  之前我用的最多的是 Tkinter ,这个 GUI 库比较灵活,可以做出比较复杂的界面。但是在页面布局和控件使用上比较复杂,想画出一个好看的界面还是要花很多功夫的。
  今天给大家介绍一个 GUI 库 —— Gooey ,一行代码就可以快速生成 GUI 应用程序。 安装
  安装方法毫无新意,跟以前我们安装其他库一样:
  pip install Gooey 简单示例 from gooey import Gooey, GooeyParser   @Gooey(program_name="简单的实例") def main():     parser = GooeyParser(description="第一个示例!")     parser.add_argument("文件路径", widget="FileChooser")      # 文件选择框     parser.add_argument("日期", widget="DateChooser")          # 日期选择框     args = parser.parse_args()                                 # 接收界面传递的参数     print(args)   if   __name__ == "__main__":     main()
  这里看代码应该大致知道界面有些什么控件:文件选择框、日期选择框。
  运行之后的效果如下:
  非常的简洁大方有木有!绝对拿得出手!组件
  GUI 界面都是由一个个组件排列组成的,上面的例子中我们使用了 FileChooser 和 DateChooser 这两个组件,使用起来是不是很简单?我们来看看 Gooey 还有哪些组件。| 控件名        | 控件类型    | | --------   | -----:   | | FileChooser      | 文件选择器 |  | MultiFileChooser | 文件多选器|  | DirChooser       | 目录选择器 | | MultiDirChooser  | 目录多选器 | | FileSaver        | 文件保存      | | DateChooser        | 日期选择      | | TextField        | 文本输入框      | | Dropdown        | 下拉列表      | | Counter        | 计数器      | | CheckBox        | 复选框      | | RadioGroup        | 单选框      |
  这些组件基本上看名称就知道是什么样子的了,都是我们平时常用的页面组件。配置
  配置参数主要是对Gooey界面做全局配置,配置方法如下:@Gooey(program_name="全局配置Demo") def main():     ...
  这里就使用了 program_name 这个配置,主要是配置显示程序的名称。
  除此之外,Gooey 还有好多其他的配置参数:
  参数类型简介 advancedBoolean切换显示全部设置还是仅仅是简化版本show_configBoolean跳过所有配置并立即运行程序 languagestr指定从 gooey/languages 目录读取哪个语言包program_namestrGUI 窗口显示的程序名。默认会显 sys.argv[0]。 program_descriptionstrSettings 窗口顶栏显示的描述性文字。默认值从 ArgumentParser 中获取。default_sizetuple窗口默认大小,(600,400) required_colsint设置必选参数行数。optional_colsint设置可选参数行数。 dump_build_configBoolean将设置以 JSON 格式保存在硬盘中以供编辑/重用。richtext_controlsBoolean打开/关闭控制台对终端控制序列的支持(对字体粗细和颜色的有限支持)
  比如我们上面的例子中除了我们自己设置的,其他的控件例如选择按钮、确定按钮等默认都是英文的,我们可以通过 language 参数来设置语言。语言包在 Gooey 的 GitHub 源码中有:
  我们使用语言配置: from gooey import Gooey, GooeyParser   @Gooey(program_name="简单的实例", language="chinese") def main():     parser = GooeyParser(description="第一个示例!")     parser.add_argument("文件路径", widget="FileChooser")      # 文件选择框     parser.add_argument("日期", widget="DateChooser")          # 日期选择框     args = parser.parse_args()                                 # 接收界面传递的参数     print(args)   if   __name__ == "__main__":     main()
  这里加了一个 language 参数,我们看看运行后效果:
  我们可以看到,界面上的文字都变成中文了。结构布局
  通过使用一些简单的自定义,您可以使用Gooey实现相当灵活的布局。我们可以通过Gooey装饰器的各种参数来控制总体布局选项。show_sidebar=True
  show_sidebar=False
  navigation="TABBED"
  tabbed_groups=True
  实例
  我们通过一个小栗子来看看运行的效果吧。 from gooey import Gooey, GooeyParser   @Gooey(     richtext_controls=True,                 # 打开终端对颜色支持     program_name="MQTT连接订阅小工具",        # 程序名称     encoding="utf-8",                       # 设置编码格式,打包的时候遇到问题     progress_regex=r"^progress: (d+)%#34;    # 正则,用于模式化运行时进度信息 ) def main():     settings_msg = "MQTT device activation information subscription"     parser = GooeyParser(description=settings_msg)      subs = parser.add_subparsers(help="commands", dest="command")      my_parser = subs.add_parser("MQTT消息订阅")     my_parser.add_argument("connect", metavar="运行环境",help="请选择开发环境",choices=["dev环境","staging环境"], default="dev环境")     my_parser.add_argument("device_type",metavar="设备类型",help="请选择设备类型",choices=["H1","H3"],default="H1")     my_parser.add_argument("serialNumber", metavar="设备SN号",default="LKVC19060047",help="多个请用逗号或空格隔开")      siege_parser = subs.add_parser("进度条控制")     siege_parser.add_argument("num",help="请输入数字",default=100)      args = parser.parse_args()     print(args, flush=True)    # flush=True在打包的时候会用到   if __name__ == "__main__":     main()
  这个例子运行的效果如下:
  打包成应用程序
  第一步,先安装我们的打包库:
  pip install pyinstaller
  第二步,执行打包命令:
  pyinstaller -F gooeydemo.py -w
  等待执行完成,我们就可以在代码目录下看到这样的结构:
  我们的 exe 可执行文件就在 dist 文件夹下。总结
  今天给大家介绍了 Gooey 的一些简单使用,个人觉得比 Tkinter 要好用一些,应对一些简单的 GUI 界面,我们使用 Gooey 可以快速生成,而使用 Tkinter 的话,可能就需要耗费一些时间了。当然,Gooey 还有一些其他的特性,大家有兴趣可以去探索!

终于!TST庭秘密已被认定为传销CBNData电商营销周报聚焦电商营销领域,行业新闻平台动态红人观察报告精选栏目每周精选电商营销行业大事主流平台动态值得一读的报告。每周五,和我们一起积累小知识,看见微趋势。本期热不想认命的刘强东,还会回来吗作者泊兮泊兮自由写作者一名,文笔不好,小生不才,但喜欢靠文章结识朋友,故常曰简单写,但认真生活。记得点赞分享,关注我,别迷路!刘强东章泽天01寒门出身2017年,刘强东参加了宿迁中人类正在见证自己进化手臂长出新血管,颈部现新器官综述作为接受过教育的我们都或多或少了解过达尔文的进化论,达尔文认为世界上的一切生物都是进化得来的,他们现如今的形态习性都是在漫长的历史中随着环境而逐渐改变的,这样的论证有着化石作为快递停运多久才能恢复?疫情期间各地的快递配送也有所延迟,而随着各地疫情逐渐控制,民众对于快递恢复时间也都非常关注。疫情解封后快递多久恢复正常?疫情期间快递恢复时间有哪些要求限制呢?喜欢网购的小伙伴都注意年薪从20万涨到100万芯片人才争夺战打响本报记者李玉洋李正豪上海报道当前半导体行业正处于高景气周期,人才供给却明显不足,尤其是在这波全球芯片角力战之下,人力的重要性愈发凸显。抢人大战一触即发。近日,全球第二大iPhone新零售转型升级银行加码个人消费贷本报记者郝亚娟张荣旺上海北京报道随着我国消费金融市场和普惠小微企业信贷市场快速发展,银行顺势将业务重点向零售业务倾斜。在新零售转型过程中,个人消费贷成为不少银行的发力点。中国经营报荣耀赵明彻底爆发,12G256G旗舰四摄,直降1600元加速离场经历了至暗时刻的荣耀如今已经恢复了元气,新品逐个发布让用户目不暇接,产品覆盖范围广卖点也不少,新机型虽然产品力很强,但价格让人望而却步,因此如果你是一位荣耀粉丝,可以考虑放低要求,荣耀V50Pro曝光,4nm5000mAh120Hz,天玑9000处理器坐镇荣耀手机自从脱离华为成为一个独立品牌以后,发展到现在越来越优秀了,为了抢占更多的市场份额,荣耀努力发布新机,最近网上又曝光了一款荣耀的新机,这款新机命名为荣耀V50Pro,我们一起vivoX80配置曝光,搭载天玑9000处理器及8GB运行内存前几天,vivo发布了vivoXFold折叠屏vivoXNote两款新旗舰系列手机,但是今年的vivoX80的旗舰机并未发布,不过近日网上已爆出了该款手机的配置等信息。据外媒gsm国产手机市场诞生新黑马,首销斩获双冠军,定价5999元起看来去年多家国产手机品牌确实是被打击到了,本来在去年多家国产手机品牌均大力冲击高端市场,在配置方面疯狂堆料,结果大多数国产高端旗舰均表现不佳,因此今年这些品牌发布新旗舰的时候就格外10分钟学会Linux常用bash命令1。BasicOperationsa。export显示所有的环境变量,如果你想获取某个变量的详细信息,使用echoVARIABLENAME。exportExampleexportS
四档控温,满足家庭多样化饮水需求摩飞恒温热水壶家庭用水的需求一般是多样的,对于有孩子的耙耙麻麻,如果能45快速充奶最好对于喜欢饮茶的朋友来说,又需要不同的水温泡不同的茶,才不会影响茶汤的风味。所以我选择摩飞的这款恒温电热水壶,夏普不做LCD也牛?鬼才设计师玩着上班?网友LCD永不为奴不知道大家有没有听过关于夏普的一个笑话,当时的夏普与知名足球解说韩乔生相当有渊源。在1996年的一场英超比赛中,韩乔生是这样说的7号球员夏普分球,传给9号球员,诶9号球员也叫夏普,葵花药业董事长杀妻案宣判,二婚家庭是非恩怨多大家好,我是老李。4月10日被曝出杀人案的葵花药业董事长的悬疑大案,终于在周五有了一个暂时性的结果。7月17日,葵花药业原董事长关彦斌杀妻案一审宣判关彦斌犯故意杀人罪,一审被判处有中国丁克一族超60万,没孩子的婚姻生活怎么如愿?大家好,我是老李。昨天刚过中国的情人节七夕节,今天就来聊点在情感生活中越来越多的一群人丁克一族。中国丁克家庭超60万,高知家庭占多数据一项社会调查显示,中国丁克家庭的数量已经超过6大自然的搬运工也想尝尝上市的甜头,农夫山泉赴港IPO大家好,我是老李。今天来和大家聊聊农夫山泉赴港上市的事。农夫山泉赴港IPO,说好的不上市呢?说起农夫山泉大家都耳熟能详,但对于钟睒睒外界所知甚少。成立于1996年的农夫山泉在二十余一天卖爆上千亿的新基金,我劝你不要买!大家好,我是老李。最近,大家借基炒股的心思都活络了起来,不少朋友都在后台问我XX新基金能不能买。其实老李我在过往文章中苦口婆心N多次了,今天最后再说一次,对于新基金不要那么热衷。大不敢争取机会,突然自我怀疑,职业瓶颈期的你还好吗?大家好,我是老李。转眼2020年的余额已经不足三分之一,很多保险人即将迎来一年一度的开门红,但是小编身边从事保险工作的读者们却开始焦虑,按理说今年因为疫情的关系,不该为业绩犯愁,但在中国,70的家庭正在做自杀式资产配置大家好,我是老李。正如地球人都知道的过去三十年,要想富,少生孩子多买房。最近这五年,房产价格上涨超过100,如果家里资产主要是房产,财富涨个100,太正常了。房价上涨使得财富由无房又一上市公司财务作假,牛市不牛,你还长期持有股票吗?大家好,我是老李。今天来聊聊又一个被曝出财务造假的上市公司。或有退市风险ST椰岛早前被合并报表重要联营企业浙银渝富(杭州)资本管理有限公司(以下简称浙银渝富)向海南证监局提交举报信这次的医保改革,许多人都没看懂大家好,我是老李。8月26日,国家医保局正式向社会公布关于建立健全职工基本医疗保险门诊共济保障机制的指导意见(征求意见稿)。医保个人账户迎来22年最大改革,职工医保个人账户拟可用于卖2块钱的包子也可以做到上市巴比馒头,从夫妻老婆店成长起来大家好,我是老李。早上8点的早高峰地铁,行色匆匆的路人,从一份路边早餐开启一天的奋斗。谁能想到,小小的馒头居然撬动了一家企业上市!是的,不要瞧不起卖馒头包子这门小生意,更不要小看这