Python 窗体(tkinter)下拉列表框(Combobox)实例

作者:houyanhua1 时间:2022-04-01 02:38:07 

废话不多说,看代码吧!


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()

来源:https://blog.csdn.net/houyanhua1/article/details/78174066

标签:Python,tkinter,Combobox
0
投稿

猜你喜欢

  • JSQL SQLProxy 的 php 版本代码

    2023-11-15 01:05:54
  • python代理工具mitmproxy使用指南

    2021-06-17 14:15:31
  • mysql日志系统的简单使用教程

    2024-01-15 21:09:05
  • pytorch加载预训练模型与自己模型不匹配的解决方案

    2023-06-17 14:22:24
  • Python3.7实现中控考勤机自动连接

    2022-08-07 16:24:22
  • vant中的toast轻提示实现代码

    2024-04-26 17:38:53
  • ASP访问数量统计代码

    2011-04-08 10:59:00
  • 2022最新版MySQL 8.0.30 安装及配置教程(小白入门)

    2024-01-28 16:49:49
  • vue+webpack模拟后台数据的示例代码

    2024-06-05 10:04:11
  • 小xiao说说创意图标设计心得

    2009-11-18 12:27:00
  • 如何安装并使用conda指令管理python环境

    2022-07-02 04:08:43
  • pycharm配置QtDesigner的超详细方法

    2022-09-07 13:35:01
  • 在ASP中使用SQL语句之9:表单操作

    2007-08-11 13:18:00
  • 使用Python的Tornado框架实现一个简单的WebQQ机器人

    2023-03-19 03:26:09
  • 详解python函数传参传递dict/list/set等类型的问题

    2021-09-29 16:12:38
  • Python读取Json字典写入Excel表格的方法

    2021-06-20 06:33:58
  • tornado 多进程模式解析

    2021-01-20 10:56:44
  • bootstrap下拉列表与输入框组结合的样式调整

    2024-04-22 13:25:02
  • Python+Pygame实现彩色五子棋游戏

    2021-03-29 23:47:34
  • Django+JS 实现点击头像即可更改头像的方法示例

    2021-09-01 19:16:44
  • asp之家 网络编程 m.aspxhome.com