精神残废 2023-03-30 11:44 采纳率: 69.8%
浏览 31
已结题

tkinter下拉列表无法设置默认值

不同处

    # province_comb=Combobox(stu_add_win,width=13,textvariable=province_text,values=provinces,state='readonly')
    province_comb = Combobox(stu_add_win, width=13, values=provinces, state='readonly')

失败代码

#菜单组件
import time
from tkinter import Menu,Tk,Toplevel,Label,Entry,Button
import tkinter as tk
from tkinter.ttk import Combobox,Radiobutton
#添加学生信息
def pop_add_stu_win():
    stu_add_win=Toplevel()
    stu_add_win.title('添加学生')
    width=250
    height=300
    screen_width,screen_height=stu_add_win.maxsize()
    stu_add_win.geometry('%dx%d+%d+%d'%(width,height,(screen_width-width)/2,(screen_height-height)/2))
    #添加组件
    Label(stu_add_win,text='姓名',width=10).grid(row=1,column=0)
    user_name =tk.StringVar()
    Entry(stu_add_win,textvariable=user_name,width=15).grid(row=1,column=1)
    Label(stu_add_win,text='电话',width=10).grid(row=2,column=0)
    user_phone =tk.StringVar()
    Entry(stu_add_win,textvariable=user_phone,width=15).grid(row=2,column=1)
    #下拉列表

    # province_text=tk.StringVar() #不同处
    Label(stu_add_win, text='省份', width=10).grid(row=3, column=0)
    provinces=['河北','上海','河南','四川']

    # province_comb=Combobox(stu_add_win,width=13,textvariable=province_text,values=provinces,state='readonly')
    province_comb = Combobox(stu_add_win, width=13, values=provinces, state='readonly')

    province_comb.current(0)
    province_comb.grid(row=3,column=1)



root=Tk()
root.title('主窗体')
root.geometry('300x500+500+100')
#自定义菜单
menuBar=Menu(master=root)
root.configure(menu=menuBar)
stu_menu=Menu(menuBar,tearoff=0)
stu_menu.add_command(label='添加',command=pop_add_stu_win)
stu_menu.add_command(label='查询',command='')
menuBar.add_cascade(label='学生',menu=stu_menu)



root.mainloop()

img

成功代码


#菜单组件
import time
from tkinter import Menu,Tk,Toplevel,Label,Entry,Button
import tkinter as tk
from tkinter.ttk import Combobox,Radiobutton
#添加学生信息
def pop_add_stu_win():
    stu_add_win=Toplevel()
    stu_add_win.title('添加学生')
    width=250
    height=300
    screen_width,screen_height=stu_add_win.maxsize()
    stu_add_win.geometry('%dx%d+%d+%d'%(width,height,(screen_width-width)/2,(screen_height-height)/2))
    #添加组件
    Label(stu_add_win,text='姓名',width=10).grid(row=1,column=0)
    user_name =tk.StringVar()
    Entry(stu_add_win,textvariable=user_name,width=15).grid(row=1,column=1)
    Label(stu_add_win,text='电话',width=10).grid(row=2,column=0)
    user_phone =tk.StringVar()
    Entry(stu_add_win,textvariable=user_phone,width=15).grid(row=2,column=1)
    #下拉列表

    # province_text=tk.StringVar()
    Label(stu_add_win, text='省份', width=10).grid(row=3, column=0)
    provinces=['河北','上海','河南','四川']

    # province_comb=Combobox(stu_add_win,width=13,textvariable=province_text,values=provinces,state='readonly')

    province_comb = Combobox(stu_add_win, width=13, values=provinces, state='readonly')

    province_comb.current(0)
    province_comb.grid(row=3,column=1)



root=Tk()
root.title('主窗体')
root.geometry('300x500+500+100')
#自定义菜单
menuBar=Menu(master=root)
root.configure(menu=menuBar)
stu_menu=Menu(menuBar,tearoff=0)
stu_menu.add_command(label='添加',command=pop_add_stu_win)
stu_menu.add_command(label='查询',command='')
menuBar.add_cascade(label='学生',menu=stu_menu)



root.mainloop()

img

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-03-30 12:32
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    在你的代码中,你已经通过调用province_comb.current(0)将下拉列表的默认值设置为了第一个元素,但是在调用grid方法之前,你没有通过province_comb的textvariable属性将默认值绑定到一个变量上。

    你可以在调用province_comb.current(0)之后,将选中的值赋值给一个变量,如下所示:

    province_text = tk.StringVar(value=provinces[0])
    province_comb = Combobox(stu_add_win, width=13, textvariable=province_text, values=provinces, state='readonly')
    

    然后在调用grid方法之前,将province_comb和province_text绑定起来,如下所示:

    province_comb['textvariable'] = province_text
    province_comb.grid(row=3, column=1)
    

    这样就可以设置默认值了。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 修改了问题 3月30日
  • 创建了问题 3月30日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度