zl程序教程

您现在的位置是:首页 >  后端

当前栏目

学习笔记(58):Python实战编程-Combobox

Python笔记学习编程 实战 58 combobox
2023-09-11 14:21:45 时间

立即学习:https://edu.csdn.net/course/play/19711/343121?utm_source=blogtoedu

1.下拉列表Combobox:与Listbox相比,下拉列表是一次只是显示一项内容,适用于布局紧张的情况下,而Listbox则是将所有的内容铺开来展示

 

2.关键代码

1)创建下拉列表代码

self.combobox_ = tkinter.ttk.Combobox(self.frame,#设置下拉列表显示的区域
                                              values =  self.cities#定义下拉列表的菜单内容项,是一个元组
                                              )

2)绑定事件的代码(注意区别,这里的事件命令是ComboboxSelected)

self.combobox_.bind("<<ComboboxSelected>>",self.combobox_handle)#为下拉列表绑定事件

3)获取下拉列表选中的内容代码

self.content.set("您所在的城市是:%s" % self.combobox_.get())  # 获得下拉列表的信息

 

3.完整代码

import tkinter#导入创建窗体的相关模块
import tkinter.ttk#导入创建窗体的相关模块
import os

image_path = r'C:\Users\jinlin\Desktop\python_further_study\GUI编程\resources'  + os.sep + 'linlianqin.gif'#因为每个平台的分隔符不一样,所以用os.sep可以自动切换到相应平台的分隔符

class Mainwindow():#创建窗口类
    def __init__(self):
        self.root = tkinter.Tk()#创建主体窗口
        self.root.title('linlianqin')#定义窗体的名字
        self.root.geometry('500x500')#定义窗体的初始大小
        self.root.maxsize(1200,1200)#设置窗口可以显示的最大尺寸
        self.combobox()
        self.root.mainloop()#显示窗口,这个代码一定要放在所有窗口设置的后面

    #-----------------创建一个下拉列表----------------------
    def combobox(self):
        self.frame = tkinter.Frame(self.root)
        self.label = tkinter.Label(self.frame,text = "请选择您所在的城市:")
        self.cities = ("上海","北京","广州","深圳")#定义下拉列表的菜单项内容
        self.combobox_ = tkinter.ttk.Combobox(self.frame,#设置下拉列表显示的区域
                                              values =  self.cities#定义下拉列表的菜单内容项,是一个元组
                                              )
        self.content = tkinter.StringVar()
        self.show_label = tkinter.Label(self.root, textvariable=self.content,font = ("微软雅黑",20))

        self.combobox_.bind("<<ComboboxSelected>>",self.combobox_handle)#为下拉列表绑定事件
        self.label.grid(row = 0,column = 0,sticky = "w")
        self.combobox_.grid(row=0,column = 1)
        self.frame.pack(anchor = "w")
        self.show_label.pack()

    def combobox_handle(self,event):
        self.content.set("您所在的城市是:%s" % self.combobox_.get())  # 获得下拉列表的信息


if __name__ == '__main__':
    Mainwindow()#将窗体类实例化