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的GIL
Jan 12 Python
Python无损音乐搜索引擎实现代码
Feb 02 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
查看Django和flask版本的方法
May 14 Python
对pandas数据判断是否为NaN值的方法详解
Nov 06 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
django中使用事务及接入支付宝支付功能
Sep 15 Python
python实现人脸签到系统
Apr 13 Python
基于python实现数组格式参数加密计算
Apr 21 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
asyncio异步编程之Task对象详解
Mar 13 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输入流php://input介绍
2012/09/18 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
微信支付开发维权通知实例
2016/07/12 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
sqlalchemy对象转dict的示例
2014/04/22 Python
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
Python函数的周期性执行实现方法
2016/08/13 Python
python有几个版本
2020/06/17 Python
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
质量承诺书范文
2014/03/27 职场文书
公司请假条范文
2014/04/11 职场文书
大学生简短的自我评价
2014/09/12 职场文书
2015年党性分析材料
2014/12/19 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
详解Vue3使用axios的配置教程
2022/04/29 Vue.js