Python之tkinter组合框Combobox用法及说明
作者:qq_1471587327 发布时间:2022-09-27 20:29:59
标签:Python,tkinter,组合框,Combobox
组合框 Combobox 简介
Combobox 可以翻译为组合框,这是tkinter.ttk
的 Widget控件,它的特性与OptionMenu类似,可以说它是Entry和下拉菜单的组合,构造方法如下
Combobox(父对象, options)
参数:
第一个参数:子组件,表示这个组合框将建立在哪一个窗口内
第二个参数:
options
,参数如下
参数 | 含义 |
---|---|
textvariable | 可以设置Combobox 的变量值 |
value | Combobox 的选项内容以元组方式存在 |
建立 Combobox
在 Combobox()的构造方法中,可以使用Value 参数建立选项内容
例子:
import tkinter
import tkinter.ttk
root = tkinter.Tk()
var = tkinter.StringVar()
combobox = tkinter.ttk.Combobox(root, textvariable=var, value=('python', 'java', 'C', 'C++'))
combobox.pack(padx=5, pady=10)
root.mainloop()
运行结果:
若是选项很多,可以使用独立在Combobox()外来处理
例子:
combobox = tkinter.ttk.Combobox(root, textvariable=var)
combobox['value'] = ('python', 'java', 'C', 'C++')
运行结果与上面相同
设置默认选项 current()
例子:
import tkinter
import tkinter.ttk
root = tkinter.Tk()
var = tkinter.StringVar()
combobox = tkinter.ttk.Combobox(root, textvariable=var)
combobox['value'] = ('python', 'java', 'C', 'C++')
combobox.current(0)
combobox.pack(padx=5, pady=10)
root.mainloop()
运行结果:
或者可以使用var.set()
方法来设置,但是相比而言还是current()
比较便利
例子:
var.set(combobox['value'][0])
# combobox.current(0)
运行结果一样
获得目前选项 get()
例子:
import tkinter
import tkinter.ttk
def show():
# 使用var.get()来获得目前选项内容
varLabel.set(var.get())
root = tkinter.Tk()
var = tkinter.StringVar()
combobox = tkinter.ttk.Combobox(root, textvariable=var)
combobox['value'] = ('python', 'java', 'C', 'C++')
combobox.current(0)
combobox.pack(padx=5, pady=10)
varLabel = tkinter.StringVar()
label = tkinter.Label(root, textvariable=varLabel, width=20, height=3, bg='lightblue', fg='red')
label.pack()
button = tkinter.Button(root, text='print', command=show)
button.pack()
root.mainloop()
运行结果:
绑定 Combobox
当Combobox 中的选项有变动时,会产生虚拟事件<<ComboboxSelected>>
,可以使用这个特性将此事件绑定处理方法
例子:
import tkinter
import tkinter.ttk
def show(event):
# 使用var.get()来获得目前选项内容
varLabel.set(var.get())
root = tkinter.Tk()
var = tkinter.StringVar()
combobox = tkinter.ttk.Combobox(root, textvariable=var)
combobox['value'] = ('python', 'java', 'C', 'C++')
combobox.current(0)
combobox.bind('<<ComboboxSelected>>', show)
combobox.pack(side=tkinter.LEFT, padx=5, pady=10)
varLabel = tkinter.StringVar()
label = tkinter.Label(root, textvariable=varLabel, width=6, bg='lightblue', fg='red')
label.pack(side=tkinter.LEFT)
root.mainloop()
运行结果:
来源:https://blog.csdn.net/qq_44168690/article/details/105085953
0
投稿
猜你喜欢
- 前言Python的异常处理能力非常强大,但是用不好也会带来负面的影响。我平时写程序的过程中也喜欢使用异常,虽然采取防御性的方式编码会更好,但
- 1> 如何在浏览器地址栏前添加自定义的小图标?你是不是记得有时在浏览网易网站的首页时,在地址WWW.PUTAOJIAYUAN.COM前
- IEBlog公布了开发中的Internet Explorer 8 Beta2版本的最新功能.IE8 Beta2在第一个版本的基础上做出了很大
- 一、题目描述A:先输出提示语句,并接受用户输入的年、月。B:根据用户输入的年,先判断是否是闰年。C:根据用户输入的月来判断月的天数。D:用循
- oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命
- import matplotlib.pyplot as pltimport jiebafrom wordcloud import wordc
- 对于windows平台来说安装完MySQL后,系统就已经默认生成了许可表和账户,你不需要像在Unix平台上那样执行 mysql_instal
- input高级限制级用法1.取消按钮按下时的虚线框 在input里添加属性值 hideFocus 或者 HideFocus=true2.只读
- 圆形的绘制 :OpenCV中使用circle(img,center,radius,color,thickness=None,lineType
- python3字符串操作 x = 'abc' y = 'defgh' print(x + y)
- 首先你要确定错误的原因: 让IE显示详细的出错信息: 菜单--工具--Internet选项--高级--显示友好的HTTP错误信息,去掉这个选
- Pattern.split方法详解/** * 测试Pattern.split方法 */ @Test public void testPatt
- 一、Ajax简介Ajax被认为是(Asynchronous JavaScript and XML)的缩写,允许浏览器与服务器通信而无需刷新当
- 在定义类的过程中,无论是显式创建类的构造方法,还是向类中添加实例方法,都要求将 self 参数作为方法的第一个参数。例如,定义一个 Pers
- 简单计数器代码如下所示:<% Set fs = CreateObject("Scri
- 所谓天赋(左脑和右脑)也就是你是否有艺术天赋,天赋也许是存在的,这主要在于人类左右脑的分工。左脑主要负责逻辑理解、语言、判断、分类、分析、推
- 第一个版本在这个版本中,首先创建了 RouterConfig 对象,其构造方法创建了 tornado.web.Application() 并
- 用了smarty,tp过后,也想了解了解其模板技术是怎么实现,于是写一个简单的模板类,大致就是读取模板文件->替换模板文件的内容-&g
- bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据
- vscode安装python库1.已经在vscode中装了python并配置好python运行环境。检查是否正确配置好运行环境,按Windo