Day17 用python写UI-聊聊Listbox基本操作

Listbox表单是可以显示很多选项的空件,一次可以执行一个或多个。

语法:Listbox( master, option, ... )

♠♣今天的文章大纲♥♦

  • 表单基本参数
  • insert()
  • Listbox控见的操作

表单基本参数

参数 说明
bg 标签背景或 indicator 的背景颜色。
borderwidth或bd 3D边界宽度,预设是2px。
cursor 当滑鼠游标在选项纽时的外形。
fg 文字的颜色。
font 字型。
height 高,设是 10。
selectbackground 被选取字串的背景色彩。
highlightthickness 当表单取得焦点时的厚度。
highlightcolor 当表单取得焦点时的颜色。
listvariable 以变数方式处理选项内容。
relief 预设是FLAT,可由此更改边界外观。
ycrollcommand y轴使用卷轴。
xcrollcommand x轴使用卷轴。
width 选项纽的文字区间有几个字元寛,省略时会自行调整为实际宽度。
参数 说明
selectmode 可以决定有多少选项可以被选,和滑鼠拖曳如何影响选项。
BROWSE 预设,选择一个选项,同时拖曳滑鼠,最後的位置是被选取的项目位置。
SINGLE 只能选择一个选项,用点选方式选取,不可用拖曳方式更改所选的项目。
MULTIPLE 可以选择多个选项,点选项目可以切换是否选择该项目。
EXTENDED 可以一次使用点选第一个项目然後拖曳到最後一个项目,即可选择这区间的系列选项。点选可以选择第一个项目,此时若是按 Shift+ 点选另一个项目,可以选取区间项目。

insert()

insert()是建立表单项目。
语法:insert(index,elements)

import tkinter as tk

root = tk.Tk()

root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('300x200')

exercises = ["Badminton", "baseball", "basketball"," football",
            " handball"," hockey"," table tennis"," tennis"," volleyball"]

lb = tk.Listbox(root,selectmode='extended')

for exercise in exercises:
    lb.insert ('end', exercise)
lb.pack(pady=10)

root.mainloop()

执行结果⬇⬇⬇
按住shift就可以选取多个选项。
https://ithelp.ithome.com.tw/upload/images/20211002/201400479abj0Rv9e3.png


Listbox控见的操作

参数 说明
size() 传回列表项目的数量。
selection_set() 选取特定索引项目。
delete() 删除特定索引项目。
get() 传回特定索引项目。
curselection() 传回选取项目的索引。
selection_include() 传回特定索引是否被选取。

size()范例
用上一个范例的程序码加上一行

for exercise in exercises:
    lb.insert ('end', exercise)
lb.pack(pady=10)
print("列出数量",lb.size())#在python shell印出数量

执行结果⬇⬇⬇
https://ithelp.ithome.com.tw/upload/images/20211002/20140047zBuuAg8rqv.png

curselection()

import tkinter as tk

root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('300x250')

def callback():
    indexs = lb.curselection()
    for index in indexs:
        print(lb.get(index))

exercises = ["Badminton", "baseball", "basketball"," football",
            " handball"," hockey"," table tennis"," tennis"," volleyball"]

lb = tk.Listbox (root, selectmode='multiple')
for exercise in exercises:
    lb.insert ('end', exercise)
lb.pack(pady=10)

b = tk.Button (root, text="Print", command=callback)
b.pack (pady = 5)

root.mainloop()

执行结果⬇⬇⬇
https://ithelp.ithome.com.tw/upload/images/20211002/20140047Mv3d9UaEMT.png
把选取的印出来。
https://ithelp.ithome.com.tw/upload/images/20211002/201400479ZxXkX3dDR.png


今天的文章就到这边,selectmode有很多种不同的方式,可以自己试试看喔~
/images/emoticon/emoticon07.gif


<<:  DAY30-JAVA的Set、List、Map介面

>>:  [Day 17] 实作-热门活动排行 List

#13 Automation

自动化 (Automation) 指的是写出一个程序,让原本需要人工手动执行的多个步骤变成全部都由程...

【第二十七天 - Dijkstra 题目分析】

先简单回顾一下,今天预计分析的题目: 题目连结:https://leetcode.com/prob...

Day27

虽然有向下转型但透过指标呼叫方法时到底会呼叫到父类别的方法还是子类别的方法呢?来讲一个很容易弄错的地...

自己来一场30天不间断的文章之旅吧

五年前,我从资管系毕业。当时的我告诉自己,未来不会踏上跟写程序相关的工作。往餐饮业、服务业发展什麽...

day5: CSS style 规划 CSS module (global CSS, CSS module)

在 react 当中有提供了不同的 css 方法,除了常见的 css in css 外, 另外现在前...