Python 用元组设置Tkinter条目
我有一个Python 用元组设置Tkinter条目,python,tkinter,Python,Tkinter,我有一个askopenfilenames()函数,它返回一个元组并将其放入名为files的变量中。 当我打印文件时,它会这样打印: ('/home/hoeter/PycharmProjects/Renpy/rpatool.py', '/home/hoeter/PycharmProjects/Renpy/unrpa.py', '/home/hoeter/PycharmProjects/Renpy/window.py') 现在我想要的是将这个值放在一个带有,但没有()的条目中,我正在尝试以下操作:
askopenfilenames()
函数,它返回一个元组并将其放入名为files
的变量中。
当我打印文件时,它会这样打印:
('/home/hoeter/PycharmProjects/Renpy/rpatool.py', '/home/hoeter/PycharmProjects/Renpy/unrpa.py', '/home/hoeter/PycharmProjects/Renpy/window.py')
现在我想要的是将这个值放在一个带有,
但没有()
的条目中,我正在尝试以下操作:
files_path.set(files)
entry3 = Entry(f3, width=50, textvariable=files_path)
但在条目中,它显示为:
/home/hoeter/PycharmProjects/Renpy/rpatool.py /home/hoeter/PycharmProjects/Renpy/unrpa.py /home/hoeter/PycharmProjects/Renpy/window.py
然而,我希望它能像印刷版那样面世。为什么没有呢
简而言之,我希望条目中的输出是:
'/home/hoeter/PycharmProjects/Renpy/rpatool.py', '/home/hoeter/PycharmProjects/Renpy/unrpa.py', '/home/hoeter/PycharmProjects/Renpy/window.py'
/home/hoeter/PycharmProjects/Renpy/rpatool.py /home/hoeter/PycharmProjects/Renpy/unrpa.py /home/hoeter/PycharmProjects/Renpy/window.py
我在条目中的当前输出是:
'/home/hoeter/PycharmProjects/Renpy/rpatool.py', '/home/hoeter/PycharmProjects/Renpy/unrpa.py', '/home/hoeter/PycharmProjects/Renpy/window.py'
/home/hoeter/PycharmProjects/Renpy/rpatool.py /home/hoeter/PycharmProjects/Renpy/unrpa.py /home/hoeter/PycharmProjects/Renpy/window.py
我现在希望进入条目,但不是,是:
('/home/hoeter/PycharmProjects/Renpy/rpatool.py', '/home/hoeter/PycharmProjects/Renpy/unrpa.py', '/home/hoeter/PycharmProjects/Renpy/window.py')
括号和逗号不是字符串的一部分,它们只是列表的可视部分
你想要这样的吗
list_of_string = ('/home/hoeter/PycharmProjects/Renpy/rpatool.py', '/home/hoeter/PycharmProjects/Renpy/unrpa.py',
'/home/hoeter/PycharmProjects/Renpy/window.py')
output = ""
for string in list_of_string:
output += "('"+string+"')" + ", "
print(output)
输出:
('/home/hoeter/PycharmProjects/Renpy/rpatool.py'), ('/home/hoeter/PycharmProjects/Renpy/unrpa.py'), ('/home/hoeter/PycharmProjects/Renpy/window.py'),
坦白地说,StringVar.set
接受元组让我有点惊讶
获取所需字符串的简单方法是将元组转换为字符串并将其切片以删除括号:
files_path.set(str(files)[1:-1])
另一种方法是使用str.join
方法,将生成元组中每个项的表示的生成器表达式传递给它
s = ', '.join(repr(u) for u in files)
files_path.set(s)
但实际上没有必要这样做,因为第一个版本基本上是做同样的事情
请注意,对于这两个版本,如果任何文件名包含单引号字符,则表示形式将用双引号引起来。如果文件名同时包含单引号和双引号,那么它的表示形式将是单引号,内部单引号将是反斜杠转义的,如下所示:\'
。但希望您不需要处理这些邪恶的文件名。:) 试试这个:
从tkinter导入*
root=Tk()
条目=[]
entries2=[]
#--------------第一行输入----------------
对于范围(4)中的i:
entry=IntVar()
entry.set(“”)
en=条目(根,textvariable=条目)
en.网格(行=i+1,列=0)
entries.append(en)
#----------------第二行输出-------------
对于范围(4)中的i:
entry=IntVar()
en2=条目(根,textvariable=条目)
en2.网格(行=i+1,列=2)
entries2.append(en2)
def saveData():
entrylist=[]
对于条目中的条目:
getentry=int(entry.get())
entrylist.append(getentry)
打印(条目列表)
对于entries2中的条目:
对于entrylist中的x:
条目集(x)
按钮=按钮(root,text=“summit”,command=saveData).grid(行=12,列=0)
root.mainloop()
那么,您还需要引号吗?我不理解您的预期输出。请在代码中添加解释。