在我正在开发的项目中,您可以编辑以树形视图形式显示的数据内容。数据字段之一是始终以 0 开头的电话号码。
在表中选择正确的记录并使用其中提取数据时tree.item(tree.selection())
。由于某种原因,电话号码会自动转换为整数,因此当它们在框中显示给用户时,它们会丢失开头的 0。
有没有什么办法解决这一问题?
from tkinter import *
import tkinter.ttk as ttk
def fnEdit(tree):
items = tree.item(tree.selection())
print(items['values'][0])
myGui = Tk()
container = Frame(myGui)
container.pack(expand=True, fill="both")
editButton = Button(myGui, text='Edit', command=lambda: fnEdit(tree))
editButton.pack(fill="x")
table_header = ['Contact No.']
tree = ttk.Treeview(container, columns=table_header, show="headings")
tree.column(table_header[0])
tree.insert('', 'end', values='01234567895')
tree.pack(expand=True, fill="both")
myGui.mainloop()
通过复制数据values
into text
(将新项目添加到树时),然后阅读text
(代替values
),将允许克服这个限制。
from tkinter import Tk
from tkinter import Frame
from tkinter import Button
import tkinter.ttk as ttk
# print(TkVersion)
# 8.6
def edit(tree):
if len(tree.selection()) == 1:
selected_item = tree.item(tree.selection())
#print(selected_item['values'][0])
print(selected_item['text'])
else:
print('please select item')
gui = Tk()
container = Frame(gui)
container.pack(expand=True, fill='both')
edit_button = Button(gui, text='Edit', command=lambda: edit(tree))
edit_button.pack(fill='x')
tree = ttk.Treeview(container, show='headings')
col_names = ['Contact No.']
tree['columns'] = col_names
for col_name in col_names:
tree.heading(col_name, text=col_name)
phone_nums = ['01234567895']
for phone_num in phone_nums:
tree.insert('', 'end', text=phone_num, values=phone_num)
tree.pack(expand=True, fill='both')
gui.mainloop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)