如何让tkinter entry小部件中插入的图形覆盖tkinter treevi中的默认值

2024-04-28 23:03:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在下面有一些代码,可以将在entry小部件中输入的图形插入到tkinter treeview名为tree2tree1中,以覆盖默认图形。我可以切片以插入month,但当我插入figure时,它将位于所选treeview内容的下方,而不是位于column1而不是column2。如果未输入数字,则默认值应为2018

我很感激你的建议

from tkinter import ttk
import tkinter as tk


blow = [("january", "2013"),("february", "2014"),("march", "2015"),("april",
"2016"),("may", "2017")]

def append_select():
    cur_id = tree.focus()
    data = 2018
    data = e1_sub.get()  # if none is provided the default should 2018

    if cur_id:
        tree2.insert("", tk.END, values=data)
       #tree2.insert("", tk.END, values=tree2.column("#2")[data])
        tree2.insert("", tk.END, values=tree.item(cur_id)['values'][:1])


root = tk.Tk()
root.geometry("500x500")

tree = ttk.Treeview(columns=("columns1", "columns"), show="headings",
selectmode="browse")
tree.heading("#1", text="Month")
tree.heading("#2", text="Year")

for n in blow:
    tree.insert("", tk.END, values=(n))

tree.pack()

e1_sub = tk.StringVar()
e1 = tk.Entry(root, textvariable=e1_sub)
e1.pack()

b1 = tk.Button(text="append", command=append_select)
b1.pack()

tree2 = ttk.Treeview(columns=("Month", "Year"), show="headings")
tree2.heading("#1", text="First name")
tree2.heading("#2", text="Surname")
tree2.pack()

root.mainloop()

Tags: texttreedatatkinterrootpacktkend
1条回答
网友
1楼 · 发布于 2024-04-28 23:03:30

我想你要做的是:

def append_select():
    cur_id = tree.focus()

    data = e1_sub.get()  # if none is provided the default should 2018
    if not data:
        data = 2018

    if cur_id:
        month = tree.item(cur_id)['values'][0]
        tree2.insert("", tk.END, values=(month, data))

基本上,它首先检查条目是否是空的,如果是空的,那么它只写它。可能结构更好。你知道吗

相关问题 更多 >