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支持断点续传的多线程下载示例
Jan 16 Python
python自动化测试实例解析
Sep 28 Python
Python的面向对象思想分析
Jan 14 Python
Python3实现并发检验代理池地址的方法
Sep 18 Python
听歌识曲--用python实现一个音乐检索器的功能
Nov 15 Python
pandas将DataFrame的列变成行索引的方法
Apr 10 Python
提升Python效率之使用循环机制代替递归函数
Jul 23 Python
python实现井字棋小游戏
Mar 04 Python
Python通过socketserver处理多个链接
Mar 18 Python
pycharm-professional-2020.1下载与激活的教程
Sep 21 Python
python利用tkinter实现图片格式转换的示例
Sep 28 Python
Python基于爬虫实现全网搜索并下载音乐
Feb 14 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
用header 发送cookie的php代码
2007/03/16 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
jQuery DOM操作小结与实例
2010/01/07 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
JavaScript的继承的封装介绍
2013/10/15 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
初级Java程序员面试题
2016/03/03 面试题
爱护公共设施标语
2014/06/24 职场文书
争先创优活动总结
2014/08/27 职场文书
邀请书格式范文
2015/02/02 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers