编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:   Password: 
 登记登记   
 模拟时钟程序
指数 -> 编程,Python. -> Python 提交
查看上一个主题 可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题
作者 信息
量子物理学




 邮政 发布: 2012年10月15日星期日上午8:46  帖子主题:模拟时钟程序

我使用tkinter(也在浏览DateTime / System Time Packages)上使用了模拟时钟程序

所以是的,这对我来说足够了,这是源代码:

Python:


tkinter. 进口 *
时间 进口 localtime
约会时间 进口 timedelta,约会时间
数学 进口 sin, cos, pi
进口 SYS. , 类型 , OS.

_inidle. = 类型 ( SYS. . 斯丁 ) ==. 类型 . 在 stancetype. \
           SYS. . 斯丁 .__类__.__ name__ == 'pyshell'

班级 transformer:

    def __在里面__( 自己 ,世界,观点):
        自己 . 世界 =世界
        自己 .视口 = viewport

    def point( 自己 ,x,y ):
       x_min,y_min,x_max,y_max = 自己 . 世界
       x_min,y_min,x_max,y_max = 自己 .视口
        f_x = 漂浮 (X_MAX-X_MIN.) / 漂浮 (X_MAX-X_MIN.)
        f_y = 漂浮 (y_max-y_min) / 漂浮 (y_max-y_min)
        f = (f_x,f_y.)
        x_c = 0.5 * (X_MIN + X_MAX.)
        y_c = 0.5 * (y_min + y_max.)
        X_c = 0.5 * (X_MIN + X_MAX.)
        Y_c = 0.5 * (y_min + y_max..)
        c_1 = X_c - f * x_c
        c_2 = Y_c - f * y_c
        X = f * x + c_1
        Y = f * y + c_2
        返回 X , Y

    def twopoints( 自己 ,x1,y1,x2,y2):
        返回 自己 . 观点 (x1,y1), 自己 . 观点 (x2,y2)

班级 钟 :

    def __在里面__( 自己 ,root,deltahours = 0):
        自己 . 世界        = [-1 - - 1,1,1]
        自己 .BGColor.      = '#000000'
        自己 .circlecolor. = '#808080'
        自己 .   = '#ffffff'
        自己 .圈子  = 0.09
        自己 。_全部         = '全部'
        自己 . 软垫          = 25
        自己 .        = root
        WIDTH, HEIGHT = 400, 400
        root. 捆绑 ("<Escape>", lambda. _ : root.破坏())
        自己 . 三角洲 = timedelta(小时= Deltahours.) 
        自己 . 帆布 = Canvas( 根,
                width       = WIDTH,
                height      = HEIGHT,
                background  = 自己 .BGColor. )
        viewport = ( 自己 . 软垫 , 自己 . 软垫 ,宽度- 自己 . 软垫 ,高度- 自己 . 软垫 )
        自己 .T = transformer( 自己 . 世界 ,观点)
        自己 .. 标题 ( '钟' )
        自己 . 帆布 . 捆绑 ("<Configure>", 自己 .配置())
        自己 . 帆布 .(填充=两者,展开=是)
        自己 . 轮询 ()
 
    def configure( 自己 ):
        自己 . 重绘 ()
   
    def redraw( 自己 ):
        sc = 自己 . 帆布
        sc. 删除 ( 自己 。_全部 )
        width = sc.winfo_width.()
        height =sc.winfo_height.()
        sc.create_rectangle.([[0,0],[宽度,高度]],
                fill = 自己 .BGColor. ,标签= 自己 。_全部 )
        viewport = ( 自己 . 软垫 , 自己 . 软垫 ,宽度- 自己 . 软垫 ,高度- 自己 . 软垫 )
        自己 .T = transformer( 自己 . 世界 ,观点)
        自己 .Paintgrafics.()

    def paintgrafics( 自己 ):
        start = -pi/2
        step = pi/6
        为了 i 范围 (12):
            angle =  start+i*step
            x, y = cos( 角度 ) ,罪 ( 角度 )
            自己 .Paintcircle.( X,Y. )
        自己 .涂料()
        自己 .Paintcircle.(0,0)
   
    def painthms( 自己 ):
        T = localtime()
       x,x,x,h,m,s,x,x,x = t
        自己 .. 标题 ('%02i.:%02i:%02i   模拟时钟 - Quantumphysics - 版本1.0' %( H,M,S ))
        angle = -pi/2 + ( PI / 6) * H + ( PI / 6)*( M / 60.0)
        x, y = cos( 角度 ) *。 60 ,罪 ( 角度 ) *。 60   
        scl = 自己 . 帆布 .create_line.
        scl( 申请 ( 自己 .T.Twopoints.,[0,0 ,x,y ]),填充= 自己 .,
                    tag = 自己 ._all,width = 6)
        angle = -pi/2 + ( PI / 30) * m + ( PI / 30)*( S / 60.0)
        x, y = cos( 角度 ) *。 80 ,罪 ( 角度 ) *。 80   
        scl( 申请 ( 自己 .T.Twopoints.,[0,0 ,x,y ]),填充= 自己 .,
                    tag = 自己 ._all,width = 3)
        angle = -pi/2 + ( PI / 30) * S.
        x, y = cos( 角度 ) *。 95 ,罪 ( 角度 ) *。 95   
        scl( 申请 ( 自己 .T.Twopoints., [0,0 ,x,y ]),填充= 自己 .,
                    tag = 自己 ._all,arrow = '最后的' )
   
    def paintcircle( 自己 ,x,y ):
        ss = 自己 .圈子 / 2.0
        mybbox = [-ss + x,-ss + y,ss + x,ss + y]
        sco = 自己 . 帆布 .create_oval.
        sco( 申请 ( 自己 .T.Twopoints. ,mybbox. ),填充= 自己 .circlecolor.,
                    tag = 自己 。_全部 )
   
    def poll( 自己 ):
        自己 .配置()
        自己 ..(200, 自己 . 轮询 )

def 主要的 ():
    root= Tk()
    clock( 根 ,deltahours = - 2)
    如果 不是 _inidle:
        root.Mainloop.()

如果 __name__=='__主要的__':
  main()



Re:我实际上使这个程序在Python第一次使用Tkinter包来测试Python的图形,我从PyGui迁移
赞助
赞助
赞助
 赞助
从上一个显示帖子:   
    指数 -> 编程,Python. -> Python 提交
查看上一个主题 告诉一个朋友可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题

11  [ 1 Posts ]
跳到:   


Style:  
搜索: