python bar函数循环_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怎么使用的话,希望不吝赐教~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值