1. 程式人生 > 程式設計 >Python 窗體(tkinter)下拉列表框(Combobox)例項

Python 窗體(tkinter)下拉列表框(Combobox)例項

廢話不多說,看程式碼吧!

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","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,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,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)例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。