Python 使用列表打印和tkinter文本框的不同输出
Python还是新手,试图弄清楚为什么在打印函数时,它会以我想要的方式显示它,但在更新tkinter文本框的同一个函数中,它不能与元素很好地分离。splitPython 使用列表打印和tkinter文本框的不同输出,python,tkinter,Python,Tkinter,Python还是新手,试图弄清楚为什么在打印函数时,它会以我想要的方式显示它,但在更新tkinter文本框的同一个函数中,它不能与元素很好地分离。split import tkinter root = tkinter.Tk() list1 = ["User1 : 1241234", "User2 : 32452623", "User2 : 32452345"] def func1():
import tkinter
root = tkinter.Tk()
list1 = ["User1 : 1241234",
"User2 : 32452623",
"User2 : 32452345"]
def func1():
for element in list1:
sep_list = element.split(':') # SPLIT
print(sep_list) # PRINT looks correct
T1.insert("end", sep_list, 'recent') # same update to text field, but ugly
button1 = tkinter.Button(root, text="Click", command=func1)
button1.grid(row=0, column=1, sticky='w')
T1 = tkinter.Text(root, height=18, width=40)
T1.place(x=35, y=35)
w = 400
h = 350
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)
root.geometry('%dx%d+%d+%d' % (w, h, x, y))
root.mainloop()
打印显示如下,这对我来说已经足够好了
['User1 ', ' 1241234']
['User2 ', ' 32452623']
['User2 ', ' 32452345']
当文本框中填充以下内容时:
{User1 } { 1241234}{User2 } { 32452623}{User2 } { 32452345}
浏览了文档、tkinter页面等,但没有看到任何与此相关的内容。我可能刚开始了解那里的问题。这仅仅是使用输出(python与tkinter)的区别吗?有什么解决方法吗?
这似乎发生在我放入文本字段的任何列表中,在单行中添加到它们的{}{}
中
我工作的最终结果是去掉了{}并且每行都有一个列表用户号。DYZ已经指出了问题发生的原因,因为第二个参数需要是字符串而不是列表(我也不知道为什么它会添加大括号)。但是,通过将列表中的元素添加到字符串中,然后将该字符串传递给insert函数,您应该能够以您想要的格式打印信息,而不是在单独的行上。例如:
T1.insert('end', (list1[0] + ' ' + list1[1]) )
DYZ提供了一些信息 T1.插入(“结束”,sep_list,“最近”)尝试插入 单元素列表将列表拆分为T。方法insert要求 第二个参数是字符串,而不是列表。显然,卷发 大括号是insert关于如何处理意外参数的想法。 传递sep_list[0]或其他字符串以获得最佳结果 最终使用了:
for i in list1:
T1.insert("end", (i + "\n"), 'recent')
只是好奇,如果文本没有任何逗号,为什么要
.split(',')
呢?对不起,那是错误的类型。实际上,我正在尝试元素。拆分(“:”)
冒号,然后打印一个列表,其中用户在第一行,数字在第二行。T1.insert(“end”,sep_list,“recent”)
尝试将单个元素列表sep_list
插入T
。方法insert
要求第二个参数是字符串,而不是列表。显然,大括号是insert
关于如何处理意外参数的想法。传递sep\u list[0]
或其他字符串以获得最佳结果。@DYZ-谢谢,我稍微修改了一下以使其正常工作。列表1中的i以结尾:
,T1。插入(“end”,i,“recent”)
。仍然没有像我拍摄的那样的分线,但我可以查到。谢谢。是的,但是你应该自己添加新行!