滑块测试

之前用滑块和画布滚动时总有点问题,所以对滑块测试一下。

点击滑块上的箭头、空白区、滑块本身,产生的调用参数不同。

#!/usr/bin/env python

# -*- coding : gb2312 -*-


from tkinter import *  


class App:

def __init__(self):

self.root = Tk()

self.root.title('滑块测试...')

self.root.geometry('800x600')

self.scr = Scrollbar(self.root)

print('get:', self.scr.get() ) # get: (0.0, 0.0, 0.0, 0.0)


self.scr.pack(side=LEFT, fill=Y)

self.scr.config(command=self.callback)

self.root.bind('<Insert>', lambda event: self.scr.set(0.5, 0.9 ) ) #插入范围测试

self.root.bind('<Delete>', lambda event: self.scr.set(0.0, 0.0) ) #删除范围测试


def callback(self, *args):

"""

args: ('scroll', '-1', 'units')滑块上箭头

args: ('scroll', '1', 'units')滑块下箭头

args: ('scroll', '-1', 'pages')滑块上空白区

args: ('scroll', '1', 'pages')滑块下空白区

args: ('moveto', '0.3653')拖动滑块

"""

print('args:', args)

print('get:', self.scr.get() )

if args[0] == 'moveto':

low = float( args[1] )

self.scr.set( low, low+0.4 )

return

if args[0] == 'scroll':

lo, hi = self.scr.get()

if args[1] == '-1':

if args[2] == 'units':

low = lo-0.1

if low < 0.0: low = 0.0

self.scr.set( low, low+0.4 )

elif args[2] == 'pages':

low = lo-0.3

if low < 0.0: low = 0.0

self.scr.set( low, low+0.4 )

else:

pass

return

if args[1] == '1':

if args[2] == 'units':

high = hi+0.1

if high > 1.0: high = 1.0

self.scr.set( high-0.4, high )

elif args[2] == 'pages':

high = hi+0.3

if high > 1.0: high = 1.0

self.scr.set( high-0.4, high )

else:

pass

return


def Run(self):

self.root.mainloop()


###################################################

app = App()

app.Run()


所以如果我要用滑块代替之前单元格的上下页按钮,就应该对这些参数

做特别处理。

评论
©appall | Powered by LOFTER