Python 组合框问题

Python 组合框问题,python,tkinter,Python,Tkinter,请原谅我的绿色。尝试构建GUI,其中从Combobox中选择的选项填充文本框。什么也没发生。第一次编程,非常感谢我在这里犯了很多错误 import tkinter as tk from tkinter import ttk from tkinter import scrolledtext # function to display course selected def courseDisplay(): box = course.get() print(box) # Cre

请原谅我的绿色。尝试构建GUI,其中从Combobox中选择的选项填充文本框。什么也没发生。第一次编程,非常感谢我在这里犯了很多错误

import tkinter as tk
from tkinter import ttk
from tkinter import scrolledtext

# function to display course selected
def courseDisplay():
    box = course.get() 
    print(box)

# Create instance
win = tk.Tk() 
win.resizable(130,130)   
win.title("RaceCourse GUI")

# create combobox
course = tk.StringVar()
courseChosen = ttk.Combobox(win,width=60,textvariable=course,state='readonly')   
courseChosen['values'] = ("Choose a course","Ascot", "Bath", "Chester")
courseChosen.grid(column=5, row=1,rowspan = 3, columnspan = 3,padx = 300, pady = 40)
courseChosen.current(0)
courseChosen.bind("<<ComboboxSelected>>", courseDisplay)

# create scrolled Text control    
scrolW  = 46
scrolH  =  10
box = scrolledtext.ScrolledText(win, width=scrolW, height=scrolH, wrap=tk.WORD)
box.grid(column=5, row=8, columnspan=3,padx = 300,pady = 10)

# Start GUI

win.mainloop()
将tkinter作为tk导入
从tkinter导入ttk
从tkinter导入滚动文本
#显示所选课程的功能
def courseDisplay():
box=course.get()
打印(框)
#创建实例
win=tk.tk()
win.可调整大小(130130)
冠军头衔(“赛马场图形用户界面”)
#创建组合框
course=tk.StringVar()
courseChosen=ttk.Combobox(win,width=60,textvariable=course,state='readonly')
courseChosen['values']=(“选择课程”、“阿斯科特”、“巴斯”、“切斯特”)
courseChosen.grid(列=5,行=1,行span=3,列span=3,padx=300,pady=40)
courseChosen.电流(0)
courseChosen.bind(“,courseDisplay)
#创建滚动文本控件
scrolW=46
scrolH=10
box=scrolledtext.scrolledtext(win,width=scrolW,height=scrolH,wrap=tk.WORD)
网格框(列=5,行=8,列跨度=3,padx=300,pady=10)
#启动GUI
win.mainloop()

由于当combobox上发生某个事件时(即,当选择某个选项时)调用函数
courseDisplay
,因此它应该接受一个变量(通常称为
事件
)。因此,您的函数应该如下所示:

def courseDisplay(event=None):
    box = course.get() 
    print(box)

当然,您应该添加另一个逻辑来在文本框中显示测试,而不是
print

由于当combobox上发生某个事件时(即,当选择某个选项时),会调用函数
courseDisplay
,因此它应该接受一个变量(通常称为
event
)。因此,您的函数应该如下所示:

def courseDisplay(event=None):
    box = course.get() 
    print(box)
当然,您应该添加另一个逻辑来在文本框中显示测试,而不是
print

什么都没发生?或者当您更改组合框时是否出现错误?什么都没有发生?或者在更改组合框时是否出现错误?