繁体   English   中英

带有tkinter的python命令行样式应用程序

[英]python command-line-style application with tkinter

在我当前正在使用的应用程序中,我想包含一个功能,管理员可以使用该功能访问某种命令行。
这不是实际的命令行,而是在我定义的文本框中查找关键字,并使用输入参数运行它们的链接函数。
例如:

get user data: erikthered

...将运行方法self.user_data('erikthered') ,但是我不确定如何优雅地完成此步骤,而无需使用诸如evalexec类的混乱东西。
理想情况下,这些功能也应适用于多个参数。
如果这个问题被认为是主观的,我深表歉意,但是我之前从未真正编写过这样的东西,并且我很珍惜其他人的见识。
谢谢

更新使用exec进行此操作的一种方法是使用字典,如下所示:

    links = {'get users':'self.get_users(parameters)', 'get user data':'self.get_user_data(parameters)'}

    terminal = self.terminal
    line = str(terminal.index(INSERT).split('.')[0])
    #get index of line

    line = terminal.get(line+'.0', line+'.end')
    splitline = line.split(':')

    command = splitline[0]
    parameters = splitline[1].split(',')
    exec(links[command])

这是我必须获取用户键入的文本并绑定到回车键的代码。 但我宁愿不使用exec

如果您不想使用exec ,则可以编写函数字典:

def get_user_data(*args):
    print(*args)
# dictionary of functions
functions = {'get user data': get_user_data}

line = "get user data: erikthered, turtle"

# parse line
command, params = line.split(":")
params = [p.strip() for p in params.split(",")]
functions[command](*params)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM