Python 组合框问题
请原谅我的绿色。尝试构建GUI,其中从Combobox中选择的选项填充文本框。什么也没发生。第一次编程,非常感谢我在这里犯了很多错误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
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
什么都没发生?或者当您更改组合框时是否出现错误?什么都没有发生?或者在更改组合框时是否出现错误?