python tkinter 中 listbox绑定scrollbar实现自动循环滚动

上次我自己提出一个问题就是如何实现scrollbar自动滚动(),经过不懈努力终于解决了这个问题!值得庆贺~~~

话不多说,程序员还是上个代码比较实在!以下就是一个小例子:

from tkinter import*

class TYST(Tk):    def __init__(self):        Tk.__init__(self):                self.scrollbar = Scrollbar(self)       self.scrollbar.pack( side = RIGHT, fill=Y )

self.mylist = Listbox(self, yscrollcommand =self.scrollbar.set )

for line in range(100):           #self.mylist.insert(END,str(line))           self.mylist.insert(END,"This is line number " + str(line))                   self.mylist.pack( side = LEFT, fill = BOTH )

self.scrollbar.config( command =self.mylist.yview )

def main():

tyst = TYST()    for i in range(100):               tyst.after(100,tyst.mylist.yview_moveto(i/100),tyst.update())#滚动的同时要不停刷新

tyst.mainloop()

if __name__==‘__main__‘:    main()

大家应该可以看出,重要的地方应该就是这里啦:
 for i in range(100):               tyst.after(100,tyst.mylist.yview_moveto(i/100),tyst.update())#滚动的同时要不停刷新

首先,yview_moveto()这个函数能让你控制滚动条,1代表整个滚动条,比如你想让他滚动到一半的位置你就要这么写yview_moveto(0.5),以此类推就能用循环来控制它处于不同的位置,注意一个地方,在这里,必须是mylist.yview_moveto(),因为你上面已经是用mylist绑定了滚动条,如果你用别的控件绑定滚动条,就是“控件名.yview_moveto()”,然后,调试的时候你就会发现,如果没有update()进行刷新,就会出现等滚动条滚动完了以后界面才会出现,所以,一定要记得用update()刷新!至于after我自己也还没弄明白怎么用,其实这个地方如果不用after也是可以的

希望这个小例子对大家有帮助,如果有人比较清楚after怎么使用的话,希望不吝赐教~~
				
时间: 2024-08-12 10:26:51

python tkinter 中 listbox绑定scrollbar实现自动循环滚动的相关文章

Winfrom中ListBox绑定List数据源更新问题

Winfrom中ListBox绑定List数据源更新问题 摘自:http://xiaocai.info/2010/09/winform-listbox-datasource-update/ Winfrom中ListBox绑定List数据源,第一次可以成功,但后面List更新以后,ListBox并没有更新. 如果 ListBox的数据源 是 DataTable 是可以自动更新的,但若是 List<T> 时对数据的修改界面不会更新,使用 BindingSource 绑定就可以了.private v

ASP.NET中使用JavaScript实现图片自动水平滚动效果

参照网上的资料,在ASP.NET中使用JavaScript实现图片自动水平滚动效果. 1.页面前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ImageScroll.aspx.cs" Inherits="SlideDemo.ImageScroll" %> <!DOCTYPE html><html xmlns="

python tkinter中嵌入gif图片(动态图片)

# -*- coding: cp936 -*- #python 27 #xiaodeng #在tkinter中嵌入gif图片(动态图片) from Tkinter import * def main(): filename = 'test.gif' root = Tk() img = PhotoImage(file=filename) label = Label(root, image=img) label.pack() root.mainloop() main()

IOS实现自动循环滚动广告--ScrollView的优化和封装

一.问题分析 在许多App中,我们都会见到循环滚动的视图,比如广告,其实想实现这个功能并不难,用ScrollView就可以轻松完成,但是在制作的过程中还存在几个小问题,如果能够正确的处理好这些小问题,无论从效果还是性能上都会得到优化. 问题一 第一个问题是如何用ScrollView来展示N个视图.想要实现这个效果,可以把N个视图依次按顺序添加到ScrollView上,然后把 ScrollView的contentSize设置为N个视图的尺寸,通过滑动ScrollView来查看加在上面的视图. 问题

iOS 幻灯片的自动循环滚动

首先,我说一下思路,自动滚动的实现是通过定时器进行实现的.当然,考虑到我们在定时循环的时候可能有进行手动滑动,所以我们就要根据 pageControl的当前定点进行判断. 而循环滚动是通过对幻灯片中image多加2进行实现的. 假如你幻灯片中有5个元素需要循环: [0, 1, 2, 3, 4] 那么你在将这四个元素添加到UIScrollView里面的时候,就需要多添加两个,变成这样: [ 4, 0, 1, 2, 3, 4, 0 ] 然后只需要在scrollViewDidEndDecelerati

Android 自动循环滚动图片(广告)附带导航小圆点

用viewpage实现了滚动图片,自动循环的效果,附带导航的小圆点 效果图如下: 准备工作: 下载我打包好的jar包,放入项目的libs文件夹下即可使用 下载地址:http://download.csdn.net/detail/u012027644/8744019 使用方法: Activity的代码: public class MainActivity extends Activity { MyImgScroll myPager; // 图片容器 LinearLayout ovalLayout;

python tkinter中的事件绑定

一个Tkinter主要跑在mainloop进程里.Events可能来自多个地方,比如按键,鼠标,或是系统事件. Tkinter提供了丰富的方法来处理这些事件.对于每一个控件Widget,你都可以为其绑定方法function. widget.bind(event,handler) 如果相应的event发生了,就会调用handler处理事件.举个例子: 捕获鼠标点击事件: from Tkinter import * root = Tk() def callback(event): print "cl

如何让 WPF 中 ListBox 列表项前自动加上序号

有时候我们可以希望在 ListBox 列表项前面加上序号,这样看起来更清楚,还可以配合使用快捷键等. 希望达到如下图的效果: 显然我们可以通过修改 ListBox 的模板来实现,只要在 Item 中加上数字这一项即可,利用 MultiBinding 和 IMultiValueConverter 即可实现. 示例 首先,我们创建一个 Person 类: public class Person { public string Name { get; set; } } 然后创建一个 Converter

自动循环滚动ScrollView

// // SBCycleScrollView.h // SBCycleScrollView // // Created by luo.h on 15/7/12. // Copyright (c) 2015年 l.h. All rights reserved. // #import <UIKit/UIKit.h> #import "NSTimer+Addition.h" /** 开启定时器 */ static NSString * const SBCycleScrollVi