gpt4 book ai didi

python-2.7 - Tkinter TreeView 选择

转载 作者:行者123 更新时间:2023-12-05 06:41:53 25 4
gpt4 key购买 nike

from Tkinter import *
from ttk import *
import tkMessageBox

class Application(Frame) :
def selected(self):
curItem = self.tree.focus();
print self.tree.item(curItem)['values'][0]
self.quit()

def __init__(self,master = None):
Frame.__init__(self, master)
self.grid()

tree = self.tree = Treeview(self,columns=('Name','Description'),show="headings",selectmode='browse')
tree.heading("Name", text="Name")
tree.heading("Description", text="Description")
tree.grid(padx = 30)

i = tree.insert('','end',values = ['0353','567'])
tree.insert(i,'end',values = ['03535','567'])
Button(self,text = "Submit",command = self.selected).grid()


root = Tk()
app = Application()
app.master.title("Tree view")
app.master.minsize(500, 400)
app.master.protocol(name = "WM_DELETE_WINDOW",func=app.master.quit)

app.mainloop()
root.destroy()

当我尝试在 TreeView 中选择“0353”并提交时,打印的是“353”而不是 0353。我希望输出为“0353”。我正在使用 python 2.7

最佳答案

也许我的回答有点晚了(微笑)......但是......问题在 Python 3.9 中也以同样的方式存在。出现此问题的原因是 tkinter Treeview 小部件(在 Python 3 中 Tkinter 被命名为 tkinter )将字符串自动转换为整数值。

唯一的解决方法似乎是接受所有只有十进制数字的字符串条目前面都有一些其他字符(或多个字符)而不是数字,以防止 int(entry) 传递一个值而不是一个错误。然后可以从返回的字符串值中删除此“ header ”以获得所需的值。下面是实现预期结果所需更改的提案:

tree.insert('',tkinter.END,values = ['> 0353','> 567'])

print( self.tree.item(curItem)['values'][0][2:] )

顺便说一下:我记得从旧的 Excel 时代,它的用户就遇到过自动类型转换的同类问题。上面提供的解决方案也适用于此。

关于python-2.7 - Tkinter TreeView 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39067164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com