首页 > 编程语言 >软件测试|超好用超简单的Python GUI库——tkinter(十)

软件测试|超好用超简单的Python GUI库——tkinter(十)

时间:2023-05-07 14:31:37浏览次数:48  
标签:控件 tkinter Python Combobox cbox win 下拉菜单 软件测试

前言

上文我们介绍了tkinter的列表框处理,我们在日常生活中还会遇到组合框的情况,tkinter同样可以实现这个功能,下面我们来介绍一下tkinter如何实现组合框。

Combobox控件

上一篇文章,我们知道 Listbox 是一个供用户从列表项中选择相应条目的控件。但在有些情况下,比如列表的项目过多时,若使用列表控件,列出所有选项就会显得界面格外臃肿,这时就需要用到 Combobox 控件,也就是下拉菜单控件(或称复合框),该控件是列表控件的改进版,具有更加灵活的界面,因此其应用场景相比于前者要更加广泛。

注:Combobox 并不包含在 tkinter 模块中,而是包含在tkinter.ttk子模块中,因此若想使用 Combobox 控件,需要使用下面的导包方式:

from tkinter import ttk

Combobox语法如下所示:

cbox=Combobox(窗口对象,[参数列表])

Combobox 控件在形式虽然与列表控件存在不同,但它们的本质是相同,因此属性和方法是通用的。

对于 Combobox 控件而言,它常用的方法有两个,分别是 get() 和 current(),前者表示获取当前选中选项的内容,后者表示获取选中选项的索引值。下面通过一组简单的示例进一步了解 Combobox 控件,示例代码如下:

import tkinter
from tkinter import ttk # 导入ttk模块,下拉菜单控件位于ttk子模块中
# 创建窗口
win = tkinter.Tk()
win.title("拜仁慕尼黑")


win.geometry('400x250')
win.resizable(0,0)
# 创建下拉菜单
cbox = ttk.Combobox(win)
# 使用 grid() 来控制控件的位置
cbox.grid(row = 1, sticky="N")
# 设置下拉菜单中的值
cbox['value'] = ('穆勒','穆西亚拉','萨内','格雷茨卡','德里赫特')
#通过 current() 设置下拉菜单选项的默认值
cbox.current(1)
# 编写回调函数,绑定执行事件,向文本插入选中文本
def func(event):
    text.insert('insert',cbox.get()+"\n")
# 绑定下拉菜单事件
cbox.bind("<<ComboboxSelected>>",func)
# 新建文本框
text = tkinter.Text(win)
# 布局
text.grid(pady = 5)
win.mainloop()

运行程序,结果如下:

软件测试|超好用超简单的Python GUI库——tkinter(十)_控件

我们可以在下拉框中选择其他的选项,如下:

软件测试|超好用超简单的Python GUI库——tkinter(十)_控件_02

每一次选择,都会在下方出现选项。

总结

本文主要介绍了tkinter组合框的实现,组合框的使用比列表框更为多见,更为方便,希望能够帮助到大家,后续我们将介绍tkinter的单选框多选框如何实现。


标签:控件,tkinter,Python,Combobox,cbox,win,下拉菜单,软件测试
From: https://blog.51cto.com/u_15640304/6251963

相关文章

  • 分享Python采集50个jQuery代码,总有一款适合您
    Python采集的50个jQuery代码下载链接:https://pan.baidu.com/s/1KoCOk4lM-A8arAsn-apcMw?pwd=k3qo提取码:k3qo现代时尚的js消息通知插件时尚简洁的js轮播图特效插件jQuery文字翻转动画特效插件jQuery移动端下拉刷新、上拉加载更多插件jquery和CSS3半透明垂直Accordion特效基于TweenM......
  • 分享Python采集80个jQuery代码,总有一款适合您
    Python采集的80个jQuery代码下载链接:https://pan.baidu.com/s/1TeAqNtMgbrQyaF5cg6dt6A?pwd=d51f提取码:d51f基于HTML5SVG的炫酷进度条插件js全屏快速预览图片特效jquery滑动侧边栏插件jSidejs和CSS3图片360度全方位3D预览插件jQuery和CSS3滑动展开菜单按钮插件33种css3开关按钮特......
  • python asyncio
    例子importasyncioasyncdefmain():print("hello")awaitasyncio.sleep(1)print("world")asyncio.run(main())主要函数task=asyncio.create_tas()res=awaitasyncio.gather(task1,task2)#res:list获取返回值res=awaittask......
  • python的三大切换
    #1、窗口切换driver.switch_to.window()#2、iframe切换#方式一:通过iframe标签的name属性driver.switch_to.frame("login_frame")#方式二:先定位iframe的标签,再进行切换loc_ifr=(By.ID,"login_frame")iframe_ele=driver.find_element(*loc_ifr)driver.switch_to.fr......
  • 使用python rembg替换登记照背景方法
    参考材料:https://pypi.org/project/rembg/fromrembgimportremovefromPILimportImageinput_path='input.jpg'output_path='output.png'in_image=Image.open(input_path)no_bg_image=remove(in_image)#删除背景x,y=no_bg_image.si......
  • pip3 & python3 -m pip All In One
    pip3&python3-mpipAllInOne$sudopip3installpackage_name#等价于$sudopython3-mpipinstallpackage_name#-mmodule-name$sudopipinstallmath-package-xgqfrms$sudopip3installmath-package-xgqfrms#等价于$sudopython3-mpipinsta......
  • 软件测试|压测之前需要做什么准备,遇到问题怎么分析?
    在进行压力测试之前,准备测试数据是非常重要的一步。以下是一些准备测试数据的方法:准备测试数据的方法描述生成随机数据使用随机数据生成器来生成测试数据,确保数据的多样性和充分性。使用真实数据使用真实的数据来模拟真实场景,并确保数据的安全性和隐私性。数据库复制从生产环境中复......
  • 软件测试|一文告诉你SQL到底是什么
    前言我们在学习数据库时,第一个要弄明白的东西就是,SQL是什么,SQL是StructuredQueryLanguage的缩写,字面意思为“结构化查询语言”,它可以用来进行数据的查询、插入、更新、删除等操作,也可以用于创建和管理数据库对象,如表、视图、存储过程、函数等。本篇文章我们就将对SQL进行系统......
  • python3 xml.etree.ElementTree.ElementTree
    1、介绍对应整个xml结构。2、初始化classElementTree:def__init__(self,element=None,file=None):self._root=element#firstnodeiffile:self.parse(file)element,ElementTree.Element类型,即设置一个节点对象作为根节点file,str......
  • python3 xml etree使用
    1、创建xml(1)通过ElementTree.ElementTree类创建,并设置一个ElementTree.Element对象作为参数,该参数对象作为根节点(2)通过ElementTree.Element创建一个或多个节点,为这些节点设置tag、attrib、text和tail(3)这些节点通过父节点的append方法添加,管理关系。ElementTree.ElementTr......