Python 窗体(tkinter)下拉列表框(Combobox)实例


Posted in Python onMarch 04, 2020

废话不多说,看代码吧!

import tkinter
from tkinter import ttk
 
def go(*args):  #处理事件,*args表示可变参数
  print(comboxlist.get()) #打印选中的值
 
win=tkinter.Tk() #构造窗体
comvalue=tkinter.StringVar()#窗体自带的文本,新建一个值
comboxlist=ttk.Combobox(win,textvariable=comvalue) #初始化
comboxlist["values"]=("1","2","3","4")
comboxlist.current(0) #选择第一个
comboxlist.bind("<<ComboboxSelected>>",go) #绑定事件,(下拉列表框被选中时,绑定go()函数)
comboxlist.pack()
 
win.mainloop() #进入消息循环

补充知识:Python GUI 之 Combobox 学习

1. 序言

本章介绍tkinter.ttk的Combobox控件。

2. 环境信息

********************************
本系列运行平台:Windows10 64bit
Python 版本:3.7
********************************

3. Combobox

Combobox为下拉列表控件,它可以包含一个或多个文本项(text item),可以设置为单选或多选。使用方式为ttk.Combobox(root,option...)。

常用的参数列表如下:

参数 描述
master 代表了父窗口
height 设置显示高度、如果未设置此项,其大小以适应内容标签
width 设置显示宽度,如果未设置此项,其大小以适应内容标签
state 可读状态,如state= “readonly”
textvariable 设置textvariable属性

一些常用的函数:

函数 描述
get 返回制定索引的项值,如listbox.get(1);返回多个项值,返回元组,如listbox.get(0,2);返回当前选中项的索引listbox.curselection()
values 设定下拉列表的内容。如 data = ["a","b","c"], cbx["values"] = data
current(i) 指定下拉列表生成时显示在列表值,i = index。如current(2),显示列表中的第三个值

事件:

下拉列表没有command函数(方法)。

下拉列表的虚拟事件是 "<<ComboboxSelected>>"。

4. 实例

实例1

from tkinter import *
from tkinter import ttk
 
#Create an instance
win = Tk()
win.title("Learn Combobox")
 
#create a Label
lb1 = Label(win, text = "Below is a combobox 1", font = "tahoma 12 normal")
lb1.grid(column = 0, row = 0, padx = 8, pady = 4)
 
def show_select_1():
	print("post_command: show_select")
	print(value.get())
 
#Define tkinter data type
data = ["a","b","c"]
value = StringVar()
 
#Create a combobox, and tighter it to value
cbx_1 = ttk.Combobox(win, width = 12, height = 8, textvariable = value, postcommand = show_select_1)
cbx_1.grid(column = 0, row = 1)
 
#add data to combobox
cbx_1["values"] = data
 
#======================================================================================================
#create a Label
lb2 = Label(win, text = "Below is a combobox 2", font = "tahoma 12 normal")
lb2.grid(column = 0, row = 4, padx = 8, pady = 4)
 
def show_data_2(*args):
	print("Event: ComboboxSelected")
	print(cbx_2.get())
 
#Define tkinter data type
data2 = ["a2","b2","c2","d2","e2"]
 
#Create a combobox, and tighter it to value
cbx_2 = ttk.Combobox(win, width = 12, height = 8)
cbx_2.grid(column = 0, row = 5)
 
#set cbx_2 as readonly
cbx_2.configure(state = "readonly")
 
#add data to combobox
cbx_2["values"] = data2
#set the initial data [index =2] to shows up when win generated
cbx_2.current(2)
 
#bind a event
cbx_2.bind("<<ComboboxSelected>>", show_data_2)
 
win.mainloop()

以上这篇Python 窗体(tkinter)下拉列表框(Combobox)实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python发送Email方法实例
Aug 21 Python
零基础写python爬虫之抓取糗事百科代码分享
Nov 06 Python
详解Python中的序列化与反序列化的使用
Jun 30 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
Oct 30 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
python实现函数极小值
Jul 10 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
python 表格打印代码实例解析
Oct 12 Python
Python模拟登录之滑块验证码的破解(实例代码)
Nov 18 Python
python 19个值得学习的编程技巧
Aug 15 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
Apr 27 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 #Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 #Python
python3格式化字符串 f-string的高级用法(推荐)
Mar 04 #Python
利用Python脚本批量生成SQL语句
Mar 04 #Python
一文了解python 3 字符串格式化 F-string 用法
Mar 04 #Python
Python正则表达式学习小例子
Mar 03 #Python
python正则表达式实例代码
Mar 03 #Python
You might like
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
php数组函数序列之in_array() - 查找数组中是否存在指定值
2011/11/07 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
javascript 浏览器检测代码精简版
2010/03/04 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
JSON 数据格式详解
2017/09/13 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
红旗团支部事迹材料
2014/01/27 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
留学生求职信
2014/06/03 职场文书
高中军训的心得体会
2014/09/01 职场文书
债务追讨律师函
2015/06/24 职场文书
投诉书格式范本
2015/07/02 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers