首页 > 编程语言 >Python基础入门学习笔记 068 GUI的终极选择:Tkinter5

Python基础入门学习笔记 068 GUI的终极选择:Tkinter5

时间:2023-08-23 11:45:33浏览次数:69  
标签:11 Python 068 GUI 滚动条 theLB 创建 root pack

Listbox组件

如果需要提供选项给用户选择,单选可以用Radiobutton组件,多选可以用Checkbutton,如果提供的选项非常多,可以考虑使用Listbox组件。Listbox是以列表的形式显示出来,并支持滚动条操作。

实例1:

 1 from tkinter import *
 2 
 3 root = Tk()#创建主窗口
 4 
 5 theLB = Listbox(root,setgrid = True,selectmode=EXTENDED)#创建一个空列表
 6 theLB.pack()
 7 
 8 #往列表里添加数据
 9 for item in ["鸡蛋","鸭蛋","鹅蛋","李狗蛋"]:
10     theLB.insert(END,item)#每次在列表最后插入一个数据
11 
12 #创建一个按钮,ACTIVE表示当前选中的数据
13 theButton = Button(root,text="删除",command = lambda x = theLB:x.delete(ACTIVE))
14 theButton.pack()
15 
16 #theLB.delete(0,END)删除所有列表数据
17 
18 mainloop()

注:listbox.delete(0,END)可以删除列表中所有项目

实例2:添加height选项

 1 from tkinter import *
 2 
 3 root = Tk()#创建主窗口
 4 
 5 #height=11表示可以显示11个项目
 6 theLB = Listbox(root,setgrid = True,\
 7                 selectmode=BROWSE,height=11)#创建一个空列表,选择模式为单选
 8 theLB.pack()
 9 
10 #往列表里添加数据
11 for item in range(11):
12     theLB.insert(END,item)#每次在列表最后插入一个数据
13 
14 #创建一个按钮,ACTIVE表示当前选中的数据
15 theButton = Button(root,text="删除",command = lambda x = theLB:x.delete(ACTIVE))
16 theButton.pack()
17 
18 #theLB.delete(0,END)删除所有列表数据
19 
20 mainloop()

Scrollbar组件

实例1:

 1 from tkinter import *
 2 
 3 root = Tk()#创建主窗口
 4 
 5 sb = Scrollbar(root)
 6 sb.pack(side=RIGHT,fill=Y)
 7 
 8 lb = Listbox(root,yscrollcommand=sb.set)#创建一个空列表
 9 for i in range(1000):
10     lb.insert(END,i)
11 lb.pack(side=LEFT,fill=BOTH)
12 
13 sb.config(command = lb.yview)
14 
15 mainloop()

事实上,这是一个互联互通的过程。当用户操作滚动条时,滚动条响应滚动并同时通过Listbox组件的yview()方法滚动列表框里的内容;同样,当列表框中可视范围发生改变的时候,Listbox组件通过调用Scrollbar组件的set()方法设置滚动条的最新位置。

Scale组件

Scale组件主要是通过滑块来表示某个范围内的一个数字,可以通过修改选项设置范围以及分辨率(精度)

实例1:

1 from tkinter import *
2 
3 root = Tk()#创建主窗口
4 Scale(root,from_=0,to=42).pack()#创建铅锤方向滚动条
5 Scale(root,from_=0,to=200,orient=HORIZONTAL).pack()#创建水平方向滚动条
6 
7 mainloop()

 实例2:打印当前位置

 1 from tkinter import *
 2 
 3 def show():
 4     print(s1.get(),s2.get())#使用get()方法获取当前滑块的位置
 5 
 6 root = Tk()#创建主窗口
 7 s1 = Scale(root,from_=0,to=42)#创建铅锤方向滚动条
 8 s1.pack()
 9 s2 = Scale(root,from_=0,to=200,orient=HORIZONTAL)#创建水平方向滚动条
10 s2.pack()
11 
12 #创建一个按钮
13 Button(root,text="获取位置",command=show).pack()
14 
15 mainloop()

 实例3:通过resolution选项控制分辨率(步长),通过tickinterval选项设置刻度

 1 from tkinter import *
 2 
 3 def show():
 4     print(s1.get(),s2.get())#使用get()方法获取当前滑块的位置
 5 
 6 root = Tk()#创建主窗口
 7 #tickinterval表示设置刻度,即每隔多少显示一个刻度
 8 #length表示滚动条的长度所占的像素数
 9 #resolution用来控制分辨率(步长)
10 s1 = Scale(root,from_=0,to=42,tickinterval=5,length=200,\
11            resolution=5,orient=VERTICAL)#创建铅锤方向滚动条
12 s1.pack()
13 s2 = Scale(root,from_=0,to=200,tickinterval=10,\
14            length=600,orient=HORIZONTAL)#创建水平方向滚动条
15 s2.pack()
16 
17 #创建一个按钮
18 Button(root,text="获取位置",command=show).pack()
19 
20 mainloop()

标签:11,Python,068,GUI,滚动条,theLB,创建,root,pack
From: https://www.cnblogs.com/ybqjymy/p/17650785.html

相关文章

  • Python基础入门学习笔记 069 GUI的终极选择:Tkinter6
    Text组件Text(文本)组件用于显示和处理多种任务。虽然该组件的主要目的是显示多行文本,但它常常也被用于作为简单的文本编辑器和网页浏览器使用。实例1:插入内容1fromtkinterimport*23root=Tk()4text=Text(root,width=30,height=2)5text.pack()6#INSERT......
  • Python基础入门学习笔记 066 GUI的终极选择:Tkinter3
    实例1:Checkbutton组件1fromtkinterimport*23root=Tk()4#需要一个Tkinter变量,用于表示该按钮是否被选中5v=IntVar()6c=Checkbutton(root,text="测试一下",variable=v)78c.pack()9#如果被选中,那么变量v被赋值为1,否则为010#可以用个Label......
  • Pybind11:使用C++编写Python模块
    放假摆了一周了。看论文实在不是什么有意思的活。这两天研究了一下Pybind11的用法。使用C/C++和Python混合编程的想法很早就有了,在大一的一次比赛时曾经实践过(虽然不是我写的),当时获得了比较显著的性能提升。但是当时用的是Swig,据队友说Swig对于NumPy的支持极为阴间,当时调试花了好......
  • Python基础入门学习笔记 064 GUI的终极选择:Tkinter
    >>>importtkinter #Tkinter是python默认的GUI库,导入Tkinter模块>>> 实例1:1importtkinterastk23root=tk.Tk()#创建一个主窗口,用于容纳整个GUI程序4root.title("FishCDemo")#设置主窗口对象的标题栏56#添加一个Label组件,可以显示文本、图标或者图......
  • Python基础入门学习笔记 065 GUI的终极选择:Tkinter2
    实例1:Label组件显示文字与gif图片1#导入tkinter模块的所有内容2fromtkinterimport*34#创建主窗口5root=Tk()6#创建一个文本Label对象,文字为左对齐,离左边边框距离为107textLabel=Label(root,8text="您下载的影片含有未成年人......
  • Python基础入门学习笔记 048 魔法方法:迭代器
    迭代的意思类似于循环,每一次重复的过程被称为一次迭代的过程,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。提供迭代方法的容器称为迭代器(如序列(列表、元组、字符串)、字典等)。对一个容器对象调用iter()就得到它的迭代器,调用next()迭代器就会返回下一个值。入托迭代器没......
  • Python基础入门学习笔记 049 乱入:生成器
    所谓协同程序,就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。生成器可以暂时挂起函数,并保留函数的局部变量等数据,然后在再次调用它的时候,从上次暂停的位置继续执行下去。一个函数中如果有yield语句,则被定义为生成器。实例1:......
  • Python基础入门学习笔记 050 模块:模块就是程序
    什么是模块•容器->数据的封装•函数->语句的封装•类->方法和属性的封装•模块->模块就是程序命名空间爱的宣言:世界上只有一个名字,使我这样牵肠挂肚,像有一根看不见的线,一头牢牢系在我心尖上,一头攥在你手中,这个名字就叫做鱼C工作室计算机一班的小花……导入模块•......
  • Python学习 -- 类的继承
    类继承是面向对象编程中的重要概念,它允许我们创建一个新的类,通过继承已有的类的属性和方法,从而实现代码的重用和扩展。Python作为一门面向对象的编程语言,提供了强大而灵活的类继承机制。本篇博客将深入探讨Python中类继承的概念,通过详细的代码实例演示其用法。基本的类继承首先,让我......
  • Python基础入门学习笔记 039 类和对象:拾遗
    组合(将需要的类一起进行实例化并放入新的类中)实例:1classTurtle:2def__init__(self,x):3self.num=x45classFish:6def__init__(self,x):7self.num=x89classPool:10def__init__(self,x,y):11self.tu......