3

您好,我目前正在学习在 python 2.7 中使用 Tkinter。我正在编写一个程序,它使用用户帐户来选择一组不同的规则。在我的程序中,我试图让用户可以点击;“新用户”或“现有用户”。问题是我正在使用 tkinter,选项菜单的语法如下。

    option = OptionMenu(master, var, "one", "two", "three", "four")
    option.pack()

正如所见,“一”、“二”和“三”都是列表中的选项,我想用用户名替换它们。问题是如何获取一个可变的用户名列表,并将所述列表输入到此选项字段中?我曾尝试使用元组,但无济于事..请有人帮助我!

4

1 回答 1

4

您可以使用*-operator 解压缩参数列表,如下所示:

...
options = ['one', 'two', 'three', 'four']
option = OptionMenu(master, var, *options)
option.pack()
...

关于解包参数的更多信息可以在这里找到:http: //docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists

您应该注意*- 运算符也可用于接受任意数量的参数,例如:

def print_names(*names):
    for name in names:
        print(name)

print_names('Bob', 'James', 'Harry')

这将输出:

Bob
James
Harry

也存在**以非常相似的方式工作的 -operator,除了它使用关键字参数。如果您想了解有关这些运算符及其用法的更多信息,那么我强烈建议您访问我上面链接的文档文章(相关信息从这里开始:http: //docs.python.org/2/tutorial/controlflow.html#keyword -参数)。

于 2013-09-08T22:26:40.657 回答