gpt4 book ai didi

python-3.x - Python tkinter 组合框

转载 作者:行者123 更新时间:2023-12-03 16:28:50 25 4
gpt4 key购买 nike

我想在单击组合框的名称时填写我的条目,而没有像“检查”这样的按钮来显示值。我该怎么做?

import tkinter as tk
from tkinter import ttk
import csv

root = tk.Tk()
cb = ttk.Combobox(root,state='readonly')
labName = ttk.Label(root,text='Names: ')
labTel = ttk.Label(root,text='TelNum:')
labCity = ttk.Label(root,text='City: ')
entTel = ttk.Entry(root,state='readonly')
entCity = ttk.Entry(root,state='readonly')

with open('file.csv','r',newline='') as file:
reader = csv.reader(file,delimiter='\t')


cb.grid(row=0,column=1)
labName.grid(row=0,column=0)
labTel.grid(row=1,column=0)
entTel.grid(row=1,column=1)
labCity.grid(row=2,column=0)
entCity.grid(row=2,column=1)

最佳答案

当您选择列表中的元素时,您可以使用bind() 来执行函数on_select

cb.bind('<<ComboboxSelected>>', on_select)

在此函数中,您可以填写Entry


来自 GitHub 的旧示例:combobox-get-selection

#!/usr/bin/env python3

import tkinter as tk
import tkinter.ttk as ttk

# --- functions ---

def on_select(event=None):
print('----------------------------')

if event: # <-- this works only with bind because `command=` doesn't send event
print("event.widget:", event.widget.get())

for i, x in enumerate(all_comboboxes):
print("all_comboboxes[%d]: %s" % (i, x.get()))

# --- main ---

root = tk.Tk()

all_comboboxes = []

cb = ttk.Combobox(root, values=("1", "2", "3", "4", "5"))
cb.set("1")
cb.pack()
cb.bind('<<ComboboxSelected>>', on_select)

all_comboboxes.append(cb)

cb = ttk.Combobox(root, values=("A", "B", "C", "D", "E"))
cb.set("A")
cb.pack()
cb.bind('<<ComboboxSelected>>', on_select)

all_comboboxes.append(cb)

b = tk.Button(root, text="Show all selections", command=on_select)
b.pack()

root.mainloop()

编辑:

on_select 中的 if event: 行仅在您使用 bind() 时才有效,因为它执行带有事件信息的函数。 command= 执行不带参数的函数,然后设置 even=None,然后 if event: 始终为 False

关于python-3.x - Python tkinter 组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47500266/

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