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中的文本处理
Apr 11 Python
深入理解python中的浅拷贝和深拷贝
May 30 Python
启动targetcli时遇到错误解决办法
Oct 26 Python
解决python爬虫中有中文的url问题
May 11 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
python支付宝支付示例详解
Aug 22 Python
python学生信息管理系统实现代码
Dec 17 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
Python Tornado核心及相关原理详解
Jun 24 Python
python 爬虫请求模块requests详解
Dec 04 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基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
Node.js事件驱动
2015/06/18 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
Python跨文件全局变量的实现方法示例
2017/12/10 Python
python实现决策树
2017/12/21 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
Python自动抢红包教程详解
2019/06/11 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
荷兰本土平价百货:HEMA
2017/10/23 全球购物
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
学生党员思想汇报
2013/12/28 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
课外科技活动总结
2014/08/27 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
外出考察学习心得体会
2016/01/18 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL