[GUI]Gooey 高级用法详解:命令行原来可以转为这么强大的用户界面

引言

我们之前的文章简单介绍过Gooey,它 是一个 Python 库,可以将 Python 命令行程序转化为漂亮的图形用户界面(GUI),使用起来非常轻松。本文即将深入探讨 Gooey 的高级用法,包括用于自定义显示和行为的不同组件、GooeyParser 的使用、自定义部件(widgets)的创建、全球化配置以及一些进阶设置等。

[GUI]Gooey 高级用法详解:命令行原来可以转为这么强大的用户界面

Gooey 的显示组件映射

首先,我们来理解一下 Gooey 是如何选择显示组件的。当你使用 Python 的 argparse 进行命令行参数解析时,Gooey 会根据 argparse._actions 的类型,映射到对应的 WxPython 组件。以下是一些基本的映射关系:

解析动作                     组件       示例
store                TextCtrl
store_const        CheckBox
store_true        CheckBox
store_False        CheckBox
version                CheckBox
append                TextCtrl
count                DropDown
Mutually Exclusive Group  RadioGroup
choice                DropDown

如果默认的映射关系不符合你的要求,你可以通过使用 GooeyParser,精确地控制要使用的部件类型。

[GUI]Gooey 高级用法详解:命令行原来可以转为这么强大的用户界面

GooeyParser 的使用

GooeyParser 是 argparse.ArgumentParser 的替代版本,它会提供额外的关键字参数 widget,用于指定想要显示的部件的名字。最好的部分就是,你不需要改变任何现有的 argparse 代码就可以使用它。

例如,如果你想要处理文件名的参数,你可以直接使用 GooeyParser 和参数 widget='FileChooser',然后用户便能够方便地选择需要处理的文件。

from gooey import GooeyParser

def main(): 
    parser = GooeyParser(description="My Cool Gooey App!")
    parser.add_argument('filename'help="name of the file to process", widget='FileChooser'

自定义部件(widgets)

Gooey 提供了一些预定义的部件,例如:DirChooserFileChooserMultiFileChooserFileSaverMultiFileSaver 和 DateChooser/TimeChooser等。这些部件可以使你的图形用户界面变得更加友好和直观。

例如,如果你想让用户选择一个目录,你可以这样做:

from gooey import GooeyParser

def main(): 
    parser = GooeyParser(description="My Cool Gooey App!")
    parser.add_argument('dirname'help="name of the directory", widget='DirChooser'

[GUI]Gooey 高级用法详解:命令行原来可以转为这么强大的用户界面

国际化配置

Gooey 也支持国际化配置,可以轻松地将整个用户界面转换为不同的语言。你只需要在 Gooey 的装饰器中加上 language 参数即可。目前,Gooey 已经预装了 18 种不同的语言。

from gooey import Gooey

@Gooey(language='russian')
def main(): 
    ... 

全局配置

Gooey 允许你通过向装饰器传递参数,来改变应用程序的外观和感觉。以下是一些常用的配置参数:

  • • encoding:用于显示字符的文本编码(默认值为 ‘utf-8’)

  • • advanced:是否显示“完全”配置屏幕,或者一个简化版本

  • • auto_start:是否立即跳过配置并运行程序

  • • language:告诉 Gooey 从 gooey/languages 目录加载哪种语言的设置

  • • target:告诉 Gooey 如何重新调用自己。默认值是找到 python,但是你也可以指定程序(如果提供了参数)

  • • suppress_gooey_flag:当使用自定义 target 时,应设为真。阻止 Gooey 注入额外的 CLI 参数

  • • program_name:GUI 窗口标题栏中显示的名称。如果未提供,则默认为从 sys.argv[0] 拉取的脚本名称

  • • program_description:设置显示在设置屏幕顶部面板的文本。默认为从 ArgumentParser 中拉取的描述

  • • default_size:窗口的初始大小

  • • fullscreen:是否让 Gooey 以全屏模式启动

    [GUI]Gooey 高级用法详解:命令行原来可以转为这么强大的用户界面

自定义图标

Gooey 默认提供了六种图标,你可以通过初始化时添加 image_dir 参数,来修改默认的图标。例如:

from gooey import Gooey

@Gooey(program_name='Custom icon demo', image_dir='/path/to/my/image/directory')
def main():
    # rest of program

结语

总的来说,Gooey 提供了许多丰富的部件和强大的配置选项,让你可以定制出满足自己需求的 GUI。通过深度掌握和巧妙运用这些高级用法,我们可以充分发挥 Gooey 的威力,让自己的命令行程序焕然一新。

项目地址:https://github.com/chriskiehl/Gooey

更多内容请关注:


原文始发于微信公众号(小白这样学Python):[GUI]Gooey 高级用法详解:命令行原来可以转为这么强大的用户界面

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/263843.html

(0)
小白这样学Python的头像小白这样学Python

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!