引言
我们之前的文章简单介绍过Gooey,它 是一个 Python 库,可以将 Python 命令行程序转化为漂亮的图形用户界面(GUI),使用起来非常轻松。本文即将深入探讨 Gooey 的高级用法,包括用于自定义显示和行为的不同组件、GooeyParser 的使用、自定义部件(widgets)的创建、全球化配置以及一些进阶设置等。
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
,精确地控制要使用的部件类型。
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 提供了一些预定义的部件,例如:DirChooser
、FileChooser
、MultiFileChooser
、FileSaver
、MultiFileSaver
和 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')
国际化配置
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 以全屏模式启动
自定义图标
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