在 Tkinter python 中 tkMessageBox.showinfo 中的 for 循环

for loop in tkMessageBox.showinfo in Tkinter python

我想在 python 中的 Tkinter tkMessageBox.showinfo() 中实现一个 for 循环 我需要在框中打印一个list of lists

我目前拥有的是:

tkMessageBox.showinfo(
    "Help INFORMATION",
    "help1 help2 \n help3 help4 \n help5 help6"
    )

我想要的是: 如下所示..

my_list=[['help1','help2'],['help3','help4'],['help5','help6']]

tkMessageBox.showinfo(
        "Help INFORMATION",
        for i in my_list:
            i + "\n" #cant use print as I want to display it in the dialog box and not in the console. 

        )

这样对话框中的输出应该是这样的:

help1 help2
help3 help4
help5 help6

但我得到的是:

Syntax Error -> for i in my_list:

好的,你可以试试这个,我知道这不是最有效的,但它确实有效!

my_list=[['help1','help2'],['help3','help4'],['help5','help6']]


def to_tuples(list):
    tuples = []
    for sublist in list :
        tuples.append(tuple(sublist))
    return tuples


def dialog_info(tuples):
    res = ""
    for element in tuples :
        res += ' '.join(element)
        res += '\n'

    return res

print dialog_info(my_list)

现在您可以使用 :

my_list = [['help1', 'help2'], ['help3', 'help4'], ['help5', 'help6']]

tkMessageBox.showinfo(
    "Help INFORMATION",
    dialog_info(my_list)
)

这个怎么样:

    my_list=[['help1','help2'],['help3','help4'],['help5','help6']]
    tkMessageBox.showinfo(
        "Help INFORMATION",
        '\n'.join(map(' '.join, my_list))
    )

我没有测试它,但理想情况下应该可以完成这项工作。

您可以使用

'\n'.join(map(' '.join, my_list))

而不是 for 循环。