使用tkinter

时间:2017-01-18 09:35:22

标签: python command-line 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

1 个答案:

答案 0 :(得分:1)

如果您不想使用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)