程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python tkinter -- 第14章 列表框(Listbox)屬性

編輯:Python

第14章 列表框(Listbox)
列表框控件顯示多行文本,用戶可以選中一行或者多行。所有的文本只能使用一種字體,不能混合使用多種字體。
14.1 屬性
常用的參數列表如下:

屬性描述activestyle被選中的文本的樣式:
underline: 下劃線
dotbox:點劃線框
none: 沒有任何的樣式background
bg背景顏色。默認是系統指定顏色borderwidth
bd邊框寬度。一般是1~2個像素值。cursor當鼠標移動經過列表框的時候,顯示的光標樣式disabledforeground列表框被禁止使用的時候的背景顏色exportselection默認是1。font列表框中文字的字體。只能選擇一種字體顯示。foreground
fg 列表框中文字的顏色height設置列表框的高度。默認值是10。highlightbackground當列表框失去焦點的時候,邊框的高亮顏色highlightcolor當列表框獲得焦點的時候,邊框的高亮顏色highlightthickness設置高亮邊框的寬度listvariable設置listvariable屬性relief邊框的美化效果。默認值是SUNKEN,其他的可選項包括:FLAT, RAISED, GROOVE, and RIDGEselectbackground選中的條目背景顏色selectborderwidth選中的條目,會用一個虛線的矩形框住。此參數定義矩形邊框的寬度。默認值是1。selectforeground選中條目的文本顏色selectmode選擇模式:
MULTIPLE為多選
BROWSE:通過鼠標的移動選擇
SINGLE:只能選一行。鼠標不能拖動選擇。
EXTENDED:shift和ctrl配合使用takefocus標識用戶是否能夠使用Tab鍵移動焦點到標簽上。默認是空字符串,也就是只有使用熱鍵才能選中該按鈕。state標簽的狀態,包括:NORMAL或者 DISABLEDwidth設置列表框的寬度。默認值為20xscrollcommand與滾動條組件相關聯(水平方向).使用方法可以參考:Scrollbar 組件yscrollcommand與滾動條組件相關聯(垂直方向).使用方法可以參考:Scrollbar 組件14.1.1 activestyle設置列表框被選中的文本行的顯示效果。有三種:underline: 下劃線dotbox:點劃線虛框none: 沒有顯示效果
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,activestyle='dotbox')
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

結果:

14.1.2 background(bg)
設置列表框背景顏色。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,bg='green')
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

結果:

14.1.3 borderwidth(bd)
設置列表框的邊框寬度。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,bd=10)
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

結果:

14.1.4 cursor
鼠標位於列表框區域時,鼠標的形狀。詳細的cursor說明見3.3.6節。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,cursor='spider')
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

14.1.5 disabledforeground
列表框的狀態為tk.DISABLED時,列表框的文本顏色。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,disabledforeground='red')
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
b1.config(state=tk.DISABLED)
root.mainloop()

結果:

14.1.6 exportselection
決定是否可以復制選中的文本內容。如果exportselection=True,表示可以。exportselection=False,表示不可復制列表框中選中的選項。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,exportselection=0)
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

14.1.7 font
設置列表框字體。所有的文本只能有一種字體,不能混合多種字體。具體的文本說明見3.3.3節。
14.1.8 foreground(fg)
設置列表框中的文本顏色。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,fg='blue')
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

結果:

14.1.9 height
設置列表框的高度。單位是行。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,height=5)
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

結果:

設置列表框的高度。默認是10行。
14.1.10 highlightbackground、highlightcolor和highlightthickness
設置列表框獲得或者失去輸入焦點時候的邊框顏色。這兩種邊框的寬度由highlightthickness設置。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,highlightbackground='blue',
highlightcolor='red',highlightthickness=10)
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

結果:


14.1.11 listvariable
listvariable 可以與一個tk.StringVar()變量相關聯。可以通過變量的get()方法,獲得列表框中的所有的文本內容。也可以通過set(s)的方法來設置列表框中的內容。

#獲得列表框的內容
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
content=tk.StringVar()
b1=tk.Listbox(root,listvariable=content)
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
print(content.get())
root.mainloop()
#設置列表框中的內容
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
content=tk.StringVar()
b1=tk.Listbox(root,listvariable=content)
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
def lst():
content.set('abc def "c c" c bbb')
b2=tk.Button(root,text='Set',command=lst)
b2.pack()
root.mainloop()

結果:

說明:
(1)使用set(s)會取代以前的列表框中的內容
(2)s是用空格分隔的字符串。多個空格會被認為是1個。如果選項中需要有空格,請用引號把這個字符串括起來。比如”c c”。
14.1.12 relief
設置列表框邊框的3D效果。見3.3.5節的說明
14.1.13 selectbackground
選中條目的背景顏色。默認值是藍色。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,selectbackground='red')
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

結果:

14.1.14 selectborderwidth
表示選中的矩形的邊框寬度。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,selectborderwidth=5)
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

結果:

說明:可以看到間距明顯比不設置selectborderwidth加大了。
14.1.15 selectforeground
選中後的文本顏色。目前是反白的顯示,也可以通過selectforeground來設定。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,selectforeground='red')
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

結果:

14.1.16 selectmode
設定列表框中條目的選擇模式:
(1)tk.BROWSE: 可以通過鼠標拖動的方式選擇條目。一次只能選中一行
(2)tk.SINGLE: 一次只能選中一個條目。不支持鼠標拖動模式選擇。
(3)tk.MULTIPLE: 可以選擇多個條目。如果該條目已經選中,再次點擊變為未選中
(4)tk.EXTENDED :支持使用如下模式選擇:
拖動選擇。鼠標拖動,在鼠標經過的條目都被選中
Shift:先鼠標點擊選中一個條目,然後按照shift鍵,鼠標點擊另外的條目,則這2個條目之間的所有條目都被選中
Ctrl: 按住ctrl鍵,同時點擊一個條目,則該條目被選中。一次只能增加一個被選中的條目。如果該條目已經被選中,則狀體變為未選中。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Listbox(root,selectmode=tk.SINGLE)
for i in range(1,11):
b1.insert(tk.END,i)
b1.pack()
root.mainloop()

14.1.17 takefocus
設置是否可以通過Tab移動輸入焦點到列表框上。
14.1.18 state
設置列表框的狀態。有二種:DISABLED或者NORMAL。
14.1.19 width
設置列表框的寬度。默認是20個字符。
14.1.20 xscrollcommand
設置水平滾動條。詳細的用法見yscrollcommand。
14.1.21 yscrollcommand
設置垂直滾動條。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
content=tk.StringVar()
content.set('1 2 3 jjjjjjjjjjjjjjjjjjjjjjjjjjj\
jjjjjjjjjjjjjj 4 5 6 7 8 9 10')
f=tk.Frame(root)
s1 = tk.Scrollbar(f,orient=tk.HORIZONTAL)
s2 = tk.Scrollbar(f,orient=tk.VERTICAL)
b1 = tk.Listbox(f,width=10,height=5,listvariable=content,
xscrollcommand=s1.set,yscrollcommand=s2.set)
s1.pack(side=tk.BOTTOM,fill=tk.X)
s1.config(command=b1.xview)
s2.pack(side=tk.RIGHT,fill=tk.Y)
s2.config(command=b1.yview)
b1.pack()
f.pack()
root.mainloop()

結果:


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved