Tkinter教程之Scrollbar篇

时间:2022-10-14 10:18:24

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811319

'''Tkinter教程之Scrollbar篇'''
Tkinter教程之Scrollbar篇#Scrollbar(滚动条),可以单独使用,但最多的还是与其它控件(Listbox,Text,Canva等)结合使用
Tkinter教程之Scrollbar篇'''1创建一个Scrollbar'''
Tkinter教程之Scrollbar篇from Tkinter import *
Tkinter教程之Scrollbar篇root = Tk()
Tkinter教程之Scrollbar篇Scrollbar(root).pack()
Tkinter教程之Scrollbar篇root.mainloop()
Tkinter教程之Scrollbar篇#显示了一个Scrollbar,但什么也做不了,无法拖动slider。
Tkinter教程之Scrollbar篇from Tkinter import *
Tkinter教程之Scrollbar篇root = Tk()
Tkinter教程之Scrollbar篇sl = Scrollbar(root)
Tkinter教程之Scrollbar篇sl.set(0.5,0)
Tkinter教程之Scrollbar篇sl.pack()
Tkinter教程之Scrollbar篇root.mainloop()
Tkinter教程之Scrollbar篇'''2.通过set方法来设置slider的位置'''
Tkinter教程之Scrollbar篇#使用水平滚动条,通过set将值设置为(0.5,1),即slider占整个Srollbar的一半
Tkinter教程之Scrollbar篇from Tkinter import *
Tkinter教程之Scrollbar篇root = Tk()
Tkinter教程之Scrollbar篇sl = Scrollbar(root,orient = HORIZONTAL)
Tkinter教程之Scrollbar篇sl.set(0.5,1)
Tkinter教程之Scrollbar篇sl.pack()
Tkinter教程之Scrollbar篇root.mainloop()
Tkinter教程之Scrollbar篇'''3.使用回调函数(不建议这样使用)'''
Tkinter教程之Scrollbar篇# -*- coding: cp936 -*-
Tkinter教程之Scrollbar篇from Tkinter import *
Tkinter教程之Scrollbar篇root = Tk()
Tkinter教程之Scrollbar篇def scrollCall(moveto,pos):
Tkinter教程之Scrollbar篇    #如何得到两个参数:使用如下打印中的信息,可以看到解释器传给scrollCall函数的两个参数,一个为
Tkinter教程之Scrollbar篇    #moveto,参考手册可以得知,它是当拖动slider时调用的函数;另一个参数为slider的当前位置,我们
Tkinter教程之Scrollbar篇    #可以通过set函数来设置slider的位置,因此使用这个pos就可以完成控制slider的位置。
Tkinter教程之Scrollbar篇    #print moveto,pos
Tkinter教程之Scrollbar篇    sl.set(pos,0)
Tkinter教程之Scrollbar篇    print sl.get()
Tkinter教程之Scrollbar篇sl = Scrollbar(root,orient = HORIZONTAL,command = scrollCall)
Tkinter教程之Scrollbar篇sl.pack()
Tkinter教程之Scrollbar篇root.mainloop()
Tkinter教程之Scrollbar篇#这样还有一个严重问题,只能对其进行拖动。对两个按钮及pagedwon/pageup的响应,由于up按钮响应的为三个参数,故会出
Tkinter教程之Scrollbar篇#现异常。这个例子只是用来说明command属性是可用的,如果喜欢自己可以处理所有的消息,将scrollCall是否可以改为变参数函数?
Tkinter教程之Scrollbar篇#对于不同的输入分别进行不同的处理。
Tkinter教程之Scrollbar篇
Tkinter教程之Scrollbar篇'''4.单独使用还是比较少见,大部分应用还是与其它控件的绑定,以下是将一个Listbox与Scrollbar绑定的例子'''
Tkinter教程之Scrollbar篇# -*- coding: cp936 -*-
Tkinter教程之Scrollbar篇from Tkinter import *
Tkinter教程之Scrollbar篇root = Tk()
Tkinter教程之Scrollbar篇lb = Listbox(root)
Tkinter教程之Scrollbar篇sl = Scrollbar(root)
Tkinter教程之Scrollbar篇sl.pack(side = RIGHT,fill = Y)
Tkinter教程之Scrollbar篇#side指定Scrollbar为居右;fill指定填充满整个剩余区域,到WM在时候再详细介绍这几个属性。
Tkinter教程之Scrollbar篇#下面的这句是关键:指定Listbox的yscrollbar的回调函数为Scrollbar的set
Tkinter教程之Scrollbar篇lb['yscrollcommand'] = sl.set
Tkinter教程之Scrollbar篇for i in range(100):
Tkinter教程之Scrollbar篇    lb.insert(END,str(i))
Tkinter教程之Scrollbar篇#side指定Listbox为居左
Tkinter教程之Scrollbar篇lb.pack(side = LEFT)
Tkinter教程之Scrollbar篇#下面的这句是关键:指定Scrollbar的command的回调函数是Listbar的yview
Tkinter教程之Scrollbar篇sl['command'] = lb.yview
Tkinter教程之Scrollbar篇root.mainloop()
Tkinter教程之Scrollbar篇'''5.这样理解二者之间的关系:当Listbox改变时,Scrollbar调用set以改变slder的位置;当Scrollbar改变了slider的位置时,Listbox调用yview以显示新的list项,为了演示这两种关系先将yscrollcommad与scrollbar的set解除绑定,看看会有什么效果'''
Tkinter教程之Scrollbar篇# -*- coding: cp936 -*-
Tkinter教程之Scrollbar篇from Tkinter import *
Tkinter教程之Scrollbar篇root = Tk()
Tkinter教程之Scrollbar篇lb = Listbox(root)
Tkinter教程之Scrollbar篇sl = Scrollbar(root)
Tkinter教程之Scrollbar篇sl.pack(side = RIGHT,fill = Y)
Tkinter教程之Scrollbar篇#解除Listbox的yscrollcommand与Scrollbar的set绑定
Tkinter教程之Scrollbar篇#lb['yscrollcommand'] = sl.set
Tkinter教程之Scrollbar篇for i in range(100):
Tkinter教程之Scrollbar篇    lb.insert(END,str(i))
Tkinter教程之Scrollbar篇#使用索引为50的元素可见
Tkinter教程之Scrollbar篇lb.see(50)
Tkinter教程之Scrollbar篇lb.pack(side = LEFT)
Tkinter教程之Scrollbar篇sl['command'] = lb.yview
Tkinter教程之Scrollbar篇root.mainloop()
Tkinter教程之Scrollbar篇#运行结果,Listbox显示了50项,即Listbox的视图已经到50了,但Scrollbar的slider仍旧位于0处。也就是说Scroolbar没有收到set
Tkinter教程之Scrollbar篇#的命令。即说明解除此绑定,Scrollbar将不再响应Listbox视图改变的消息。但仍可以使用Scrollbar的slider来移动Listbox的视图。
Tkinter教程之Scrollbar篇
Tkinter教程之Scrollbar篇'''6.再测试一下,解除Scrollbar的command与Listbox的yview的关系,测试代码如下:'''
Tkinter教程之Scrollbar篇# -*- coding: cp936 -*-
Tkinter教程之Scrollbar篇from Tkinter import *
Tkinter教程之Scrollbar篇root = Tk()
Tkinter教程之Scrollbar篇lb = Listbox(root)
Tkinter教程之Scrollbar篇sl = Scrollbar(root)
Tkinter教程之Scrollbar篇sl.pack(side = RIGHT,fill = Y)
Tkinter教程之Scrollbar篇#下面的这句是关键:指定Listbox的yscrollbar的回调函数为Scrollbar的set
Tkinter教程之Scrollbar篇lb['yscrollcommand'] = sl.set
Tkinter教程之Scrollbar篇for i in range(100):
Tkinter教程之Scrollbar篇    lb.insert(END,str(i*100))
Tkinter教程之Scrollbar篇#使用索引为50的元素可见
Tkinter教程之Scrollbar篇lb.see(50)
Tkinter教程之Scrollbar篇lb.pack(side = LEFT)
Tkinter教程之Scrollbar篇#解除Scrollbar的command与Listbox的yview的关系
Tkinter教程之Scrollbar篇#sl['command'] = lb.yview
Tkinter教程之Scrollbar篇root.mainloop()
Tkinter教程之Scrollbar篇#运行程序,Scrollbar的slider已经到了50位置,也就是说Scrollbar响应了Listbox视图改变的消息,调用 了自己的set函数。
Tkinter教程之Scrollbar篇#进行操作:拖动slder或点击up/down按钮,Listbox的视图没有任何反应,即Listbox不会响应Scrollbar的消息了。

Tkinter教程之Scrollbar篇的更多相关文章

  1. Tkinter教程之Listbox篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811310 #Tkinter教程之Listbox篇#Listbox为列表框控件,它可以包含一个 ...

  2. Tkinter教程之Canvas篇(2)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811888 '''Tkinter教程之Canvas篇(2)''''''9.创建item的tag ...

  3. Tkinter教程之Event篇(3)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823550 '''Tkinter教程之Event篇(3)''''''11.两个事件同时绑定到一 ...

  4. Tkinter教程之Event篇(2)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823548 '''Tkinter教程之Event篇(2)''''''5.测试离开(Leave) ...

  5. Tkinter教程之Event篇(1)'

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823544 ''Tkinter教程之Event篇(1)'''# 事件的使用方法'''1.测试鼠 ...

  6. Tkinter教程之Grid篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1813196 '''Tkinter教程之Grid篇'''# Tkinter参考中最推荐使用的一个 ...

  7. Tkinter教程之Pack篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1813077 '''Tkinter教程之Pack篇'''#Pack为一布局管理器,可将它视为一个 ...

  8. Tkinter教程之Canvas篇(4)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1812091 '''Tkinter教程之Canvas篇(4)''''''22.绘制弧形'''#  ...

  9. Tkinter教程之Canvas篇(3)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811922 ''Tkinter教程之Canvas篇(3)''''''16.移动item'''# ...

随机推荐

  1. POJ 1442 Black Box -优先队列

    优先队列..刚开始用蠢办法,经过一个vector容器中转,这么一来一回这么多趟,肯定超时啊. 超时代码如下: #include <iostream> #include <cstdio ...

  2. linux切换用户

    当前使用root账户 [root@localhost chucklu]# cd[root@localhost ~]# pwd/root 切换到普通账户 [root@localhost ~]# su c ...

  3. 使用Cordova框架把Webapp封装成Hybrid App实践——Android篇

    公司没有IOS和没有安卓开发人员,前端后端都是需要自己玩前几天技术经理说有一个需求要把webapp封装成Hybrid App,现已完成.记录一下从中遇到的问题和需要用到的开发环境的配置 将Webapp ...

  4. JavaScript 基础阶段测试题

    JavaScript 基础阶段测试题,试试你能得多少分? 一.选择题1.分析下段代码输出结果是( )    var arr = [2,3,4,5,6];    var sum =0;    for(v ...

  5. Spring Security4实例(Java config版)——ajax登录,自定义验证

    本文源码请看这里 相关文章: Spring Security4实例(Java config 版) -- Remember-Me 首先添加起步依赖(如果不是springboot项目,自行切换为Sprin ...

  6. 异构无线网络之QOS简介

    QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力, 是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术. 在正常 ...

  7. java 注解 总结

    http://www.importnew.com/23564.html 注解的好处: 1.能够读懂别人写的代码,特别是框架相关的代码. 2.本来可能需要很多配置文件,需要很多逻辑才能实现的内容,就可以 ...

  8. 【ASP&period;NET】Layout使用详解

    1.母板页_Layout.cshtml 类似于传统WebForm中的.master文件,起到页面整体框架重用的目地 1.母板页代码预览 1 <!DOCTYPE html> 2 <ht ...

  9. windows程序设计&period;窗口&period;

    第一个windows窗口 #include <windows.h> /* Displays "Hello, World!" in client area */ LRES ...

  10. Terrain tessellation &amp&semi;&amp&semi;Threaded Rendering Vk

    https://github.com/NVIDIAGameWorks/GraphicsSamples/tree/master/samples/es3aep-kepler/TerrainTessella ...