Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';将gui功能添加到现有CLI(用Python编写)的最佳方法是什么?_Python_User Interface_Command Line Interface - Fatal编程技术网

什么';将gui功能添加到现有CLI(用Python编写)的最佳方法是什么?

什么';将gui功能添加到现有CLI(用Python编写)的最佳方法是什么?,python,user-interface,command-line-interface,Python,User Interface,Command Line Interface,我的研究实验室有一个用R脚本编写的管道,我已经设法用python对其进行包装,以创建一个运行良好的CLI。总指挥部是 $ program_name <mode> [args] $program\u name[args] 其中我有4个相互排斥的模式,具有不同的参数。为了构造程序,我有一个programlib目录,其中包含launcher.py文件,其中包含launch()函数和模式解析器。然后映射到programlib/tasks.py,其中包含每个模式的类及其各自的解析器和参数

我的研究实验室有一个用R脚本编写的管道,我已经设法用python对其进行包装,以创建一个运行良好的CLI。总指挥部是

$ program_name <mode> [args]
$program\u name[args]
其中我有4个相互排斥的模式,具有不同的参数。为了构造程序,我有一个programlib目录,其中包含
launcher.py
文件,其中包含
launch()
函数和模式解析器。然后映射到
programlib/tasks.py
,其中包含每个模式的类及其各自的解析器和参数

模式采用
parser.parse_args(sys.argv[1:2])
并且映射到模式的每个类采用
parser.parse_args(sys.argv[2:])

我尝试过使用decorator
@goey
,但我发现它与可能相互排斥的参数一起使用时会令人困惑。我正在阅读tkinter和PyQt5,但到目前为止,我无法判断哪一个是更好的主意,或者我正在尝试做的事情是否有更好的替代方案

理想情况下,我希望有一个与原始代码分开的
.py
文件或目录,以便以后可以在命令行中添加一个标志来触发
--gui
。这可能吗?我该怎么做