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的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
Python中str.format()详解
Mar 12 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
python绘制散点图并标记序号的方法
Dec 11 Python
python读取csv和txt数据转换成向量的实例
Feb 12 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
Sep 20 Python
Python list运算操作代码实例解析
Jan 20 Python
Python如何使用turtle库绘制图形
Feb 26 Python
python uuid生成唯一id或str的最简单案例
Jan 13 Python
python 写一个水果忍者游戏
Jan 13 Python
Spy++的使用方法及下载教程
Jan 29 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
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
Laravel5中contracts详解
2015/03/02 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
JS Timing
2007/04/21 Javascript
js 实现 input type=&quot;file&quot; 文件上传示例代码
2013/08/07 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
jquery中取消和绑定hover事件的实现代码
2016/06/02 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
vue实现验证码按钮倒计时功能
2018/04/10 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
Python 高级专用类方法的实例详解
2017/09/11 Python
python合并同类型excel表格的方法
2018/04/01 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
Python中的类与类型示例详解
2019/07/10 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
python操作yaml说明
2020/04/08 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
Linux常见面试题
2016/10/04 面试题
幼儿教师考核制度
2014/01/25 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android