tkinter入门(4)--列表框,Scrollbar,Scale

1、列表框,多个选项时使用

import tkinter as tk
root = tk.Tk()#生成顶层窗口
root.title("组件使用!")#设置图形用户界面标题

#列表框,多个选项时使用
listbox1 = tk.Listbox(root,selectmode = 'multiple')#selectmode设置选择模式,有四种选择single(单选),browse(单选,但拖动鼠标或方向键可以改变选项),multiple(多选),extended(多选,但需同时按住shift和ctrl键或拖动鼠标实现)
items = [('apple',0),('bag',1),('cat',2),('dog',3),('apple',0),('bag',1),('cat',2),('dog',3),('apple',0),('bag',1),('cat',2),('dog',3)]
for item,index in items:
    print(index)
    listbox1.insert(index,item)
listbox1.pack()
button = tk.Button(root,text = '删除它',\
                   command = lambda x = listbox1:x.delete(x.curselection()))
#lambda 表达式,冒号前面是参数,冒号后面是返回值
button.pack()
root.mainloop()#重要步骤,进入主事件循环,由tkinter主管、监听

  代码写了列表框创建及使用方法,其中当我想要删除选中选项时,我搜索出的一般方法:列表框名.delete(列表框名..SelectedItemIndex)列表框名.delete(ACTIVE),但是我在pycharm中运行老是报错,显示listbox没有属性ACTIVE或SelectedItemIndex,这时我通过Listbox类定义发现一个内置方法curselection作用与我想要的结果相同。pycharm中查询某变量定义处方法如下:选中某变量,右键选择go to,然后选择Declaration or Usages,即可跳转到变量定义处。
在这里插入图片描述

2、列表框多时,解决方案

方案一:可以通过修改定义列表框时height来修改显示行数;
listbox1 = tk.Listbox(root,height = 11),完整修改代码请在此处往上翻,并将此行代码替换上文代码第六行内容

方案二设置滚动条
在某个组件上安装垂直滚动条需完成两件事,
a、设置该组件的yscrollbarcommand选项为Scrollbar组件的set()方法
b、设置Scrollbar组件的command选项为该组件的yview()方法

import tkinter as tk
root = tk.Tk()#生成顶层窗口
root.title("组件使用!")#设置图形用户界面标题

#设置滚动条
scrollbar = tk.Scrollbar(root)
scrollbar.pack(side = 'right',fill = 'y')
listbox1 = tk.Listbox(root,yscrollcommand = scrollbar.set)
for i in range(100):
    listbox1.insert((i-1),i)
listbox1.pack(side = 'left',fill = 'both')
scrollbar.config(command = listbox1.yview)
root.mainloop()#重要步骤,进入主事件循环,由tkinter主管、监听

运行截图:

在这里插入图片描述

3、scale组件,使用户选择一定范围内数据

import tkinter as tk
root = tk.Tk()#生成顶层窗口
root.title("组件使用!")#设置图形用户界面标题
#scale组件,使用户选择一定范围内数据
scale1 = tk.Scale(root,from_ = 0,to = 200,length = 200,tickinterval = 5,resolution = 5)#length属性设置范围组件长度,tickinterval属性设置刻度,resolution设置滑动步长
scale1.pack()
scale2 = tk.Scale(root,from_ = 0,to = 20,orient = 'horizontal')
scale2.pack()
def show():
    print(scale1.get(),scale2.get())
tk.Button(root,text = '获取位置',command = show).pack()
root.mainloop()#重要步骤,进入主事件循环,由tkinter主管、监听

运行截图:
运行后设置数据,并点击按钮打印获取数据如下图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值