⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 components_4.py

📁 Python.Tkinter编程实例代码多多学习
💻 PY
📖 第 1 页 / 共 3 页
字号:
    def __init__(self, master, width=1, height=1):
	CardBlank.__init__(self, master=master, width=width, height=height)
        bg=master['background']
        StandardLEDs.__init__(self, master=master, bg=bg)
        yy = 0.28
        for i in range(4):
            setattr(self, 'fs%d' % (i+1), J9(self.card_frame,
                        fid="FastSerial-%d", port=i+1, orient=HW_VERTICAL,
                        status=STATUS_OFF))
            getattr(self, 'fs%d' % (i+1)).j_frame.place(relx=0.5,
                                               rely=yy,anchor=CENTER)
            yy = yy + 0.167

        xypos = [(0.2,0.1), (0.8,0.1),
                 (0.2,0.13),(0.8,0.13),
                 (0.2,0.16),(0.8,0.16),
                 (0.2,0.19),(0.8,0.19)]
        
        for i in range(8):
            xpos,ypos = xypos[i]
            setattr(self, 'led%d' % (i+1), LED(self.card_frame,shape=ROUND,
                        width=6, status=STATUS_ON, bg=bg))
            getattr(self, 'led%d' % (i+1)).led_frame.place(relx=xpos,
                                                  rely=ypos,anchor=CENTER)
        for lbl, ypos in [('1', 0.1), ('2', 0.13),
                          ('3', 0.16),('4', 0.19)]:
            Label(self.card_frame,text=lbl,
                  font=("verdana", 4), fg="white",
                  bg=bg).place(relx=0.5,rely=ypos,anchor=CENTER)
                 
class ProcessorCard(CardBlank,StandardLEDs):
    def __init__(self, master, width=1, height=1):
	CardBlank.__init__(self, master=master, width=width, height=height)
        bg=master['background']
        StandardLEDs.__init__(self, master=master, bg=bg)
        self.j45=Enet10baseT(self.card_frame,fid="ClockPort",
                             port=1,orient=HW_LEFT, status=STATUS_OFF)
        self.j45.j45_frame.place(relx=0.5,rely=0.25,anchor=CENTER)
        lbl=Label(self.card_frame,text="Clock",
                  font=("verdana", 6), fg="white",bg=bg)
        lbl.place(relx=0.5, rely=0.20,anchor=S)

        self.cmd=J25(self.card_frame,fid="ControlPort",
                     port=1,orient=HW_VERTICAL, status=STATUS_OFF)
        self.cmd.j_frame.place(relx=0.5,rely=0.65,anchor=CENTER)
        Label(self.card_frame,text="CLI",
              font=("verdana", 6), fg="white",
              bg=bg).place(relx=0.5, rely=0.52,anchor=S)
                 
        xypos = [(0.3,0.35),(0.7,0.35),
                 (0.3,0.38),(0.7,0.38),
                 (0.3,0.41),(0.7,0.41),
                 (0.3,0.44),(0.7,0.44)]
        
        for i in range(8):
            xpos,ypos = xypos[i]
            setattr(self, 'led%d' % (i+1), LED(self.card_frame,shape=ROUND,
                        width=6, status=STATUS_ON, bg=bg))
            getattr(self, 'led%d' % (i+1)).led_frame.place(relx=xpos,
                                                  rely=ypos,anchor=CENTER)

class SwitchCard(CardBlank,StandardLEDs):
    def __init__(self, master, width=1, height=1):
	CardBlank.__init__(self, master=master, width=width, height=height)
        bg=master['background']
        StandardLEDs.__init__(self, master=master, bg=bg)
        xypos = [(0.3,0.35),(0.7,0.35),
                 (0.3,0.38),(0.7,0.38)]
        
        for i in range(4):
            xpos,ypos = xypos[i]
            setattr(self, 'led%d' % (i+1), LED(self.card_frame,shape=ROUND,
                        width=6, status=STATUS_ON, bg=bg))
            getattr(self, 'led%d' % (i+1)).led_frame.place(relx=xpos,
                                                  rely=ypos,anchor=CENTER)

        self.status = PanelText(self.card_frame, text='OK')
        self.status.text_frame.place(relx=0.5, rely=0.5, anchor=CENTER)

class T3AccessCard(CardBlank,StandardLEDs):
    def __init__(self, master, width=1, height=1):
	CardBlank.__init__(self, master=master, width=width, height=height)
        bg=master['background']
        StandardLEDs.__init__(self, master=master, bg=bg)
        for port, lbl, tag, ypos in [(1,'RX1','T3AccessRX', 0.30),
                                     (2,'TX1','T3AccessTX', 0.40),
                                     (3,'RX2','T3AccessRX', 0.65),
                                     (4,'TX2','T3AccessRX', 0.75)]:
            setattr(self, 'bnc%d' % port, BNC(self.card_frame, fid=tag,
                                              port=port))
            getattr(self, 'bnc%d' % port).bnc_frame.place(relx=0.5,
                                              rely=ypos,anchor=CENTER)
            Label(self.card_frame,text=lbl,
                  font=("verdana", 6), fg="white",
                  bg=bg).place(relx=0.5, rely=(ypos+0.045), anchor=CENTER)
        for led, lbl, xpos, ypos, state in [('rxc','RXC',0.3,0.18,2),
                                            ('oos','OOS',0.7,0.18,1),
                                            ('flt','FLT',0.3,0.23,1),
                                            ('syn','SYN',0.7,0.23,2),
                                            ('rxc','RXC',0.3,0.53,2),
                                            ('oos','OOS',0.7,0.53,1),
                                            ('flt','FLT',0.3,0.58,1),
                                            ('syn','SYN',0.7,0.58,2)]:
            setattr(self, led, LED(self.card_frame,shape=ROUND,width=8,
                                   status=state, bg=bg))
            getattr(self, led).led_frame.place(relx=xpos,
                                        rely=ypos,anchor=CENTER)
            Label(self.card_frame,text=lbl,
                  font=("verdana", 4), fg="white",
                  bg=bg).place(relx=xpos, rely=(ypos+0.028), anchor=CENTER)
            
class OC3Card(CardBlank,StandardLEDs):
    def __init__(self, master, width=1, height=1):
	CardBlank.__init__(self, master=master, width=width, height=height)
        bg=master['background']
        StandardLEDs.__init__(self, master=master, bg=bg)
        yy = 0.28
        for i in range(4):
            setattr(self, 'oc3%d' % (i+1), FDDI(self.card_frame, fid="OC3-%d",
                 port=i+1, orient=HW_VERTICAL, status=STATUS_OFF))
            getattr(self, 'oc3%d' % (i+1)).fddi_frame.place(relx=0.5,
                                                  rely=yy, anchor=CENTER)
            yy = yy + 0.167

        left = TRUE
        yy =0.213
        for i in range(8):
            if left:
                xpos = 0.3
            else:
                xpos = 0.7
            setattr(self, 'led%d' % (i+1), LED(self.card_frame, shape=ROUND,
                              width=6, status=STATUS_ON, bg=bg))
            getattr(self, 'led%d' % (i+1)).led_frame.place(relx=xpos,
                                                  rely=yy, anchor=CENTER)
            if left:
                left = FALSE
            else:
                left = TRUE
                yy = yy + 0.167

class C6C110_CardBlank(GUICommon):
    def __init__(self, master=None, width=10, height=10,
		 appearance=FLAT, bd=0):
	self.card_frame=Frame(master, relief=appearance, height=height, 
                              width=width, bd=bd, highlightthickness=0)

class C6C110_FDDI(C6C110_CardBlank):
    def __init__(self, master, slot=0):
        self.img = PhotoImage(file='images/6c110_fddi.gif')
        setattr(glb,  'img%d' % slot, self.img)
        self.width  = self.img.width()
        self.height = self.img.height()

	C6C110_CardBlank.__init__(self, master=master, width=self.width,
                                  height=self.height)
        xypos = [(9,43),(13,70),(18,70),
                 (13,105),(18,105),
                 (13,140),(18,140),
                 (13,175),(18,175),
                 (13,203),(18,203),
                 (13,238),(18,238),
                 (13,273),(18,273),
                 (12,308),(17,308) ]
        
        self.canvas = Canvas(self.card_frame, width=self.width,
                             bd=0,highlightthickness=0,
                             height=self.height,selectborderwidth=0)
        self.canvas.pack(side="top", fill=BOTH, expand='no')
        self.canvas.create_image(0,0,anchor=NW,
                                 image=eval('glb.img%d' % slot))

        for i in range(len(xypos)):
            xpos,ypos = xypos[i]
            setattr(self, 'led%d' % (i+1), CLED(self.card_frame,
                          self.canvas, shape=ROUND, width=4, status=STATUS_ON,
                          relx=xpos, rely=ypos))

class C6C110_ENET(C6C110_CardBlank):
    def __init__(self, master, slot=0):
        self.img = PhotoImage(file='images/6c110_enet.gif')
        setattr(glb,  'img%d' % slot, self.img)
        self.width  = self.img.width()
        self.height = self.img.height()

	C6C110_CardBlank.__init__(self, master=master, width=self.width,
                                  height=self.height)
        xypos = [(10,180),(10,187),
                 (10,195),(10,203),(10,210),(10,235),
                 (10,242)]
        
        self.canvas = Canvas(self.card_frame, width=self.width,
                             bd=0,highlightthickness=0,
                             height=self.height,selectborderwidth=0)
        self.canvas.pack(side="top", fill=BOTH, expand='no')
        self.canvas.create_image(0,0,anchor=NW,
                                 image=eval('glb.img%d' % slot))

        for i, y in [(0, 0.330), (1, 0.619)]:
            setattr(self, 'j%d' % i, Enet10baseT(self.card_frame,
                      fid="10Base-T-%d", port=i, orient=HW_LEFT,
                      status=STATUS_OFF, xwidth=15, xheight=12))
            getattr(self, 'j%d' % i).j45_frame.place(relx=0.52,
                               rely=y, anchor=CENTER)

        for i in range(len(xypos)):
            xpos,ypos = xypos[i]
            setattr(self, 'led%d' % (i+1), CLED(self.card_frame,
                          self.canvas, shape=ROUND, width=4, status=STATUS_ON,
                          relx=xpos, rely=ypos))

class C6C110_PSU(C6C110_CardBlank):
    def __init__(self, master, slot=0):
        self.img = PhotoImage(file='images/6c110_psu.gif')
        setattr(glb,  'img%d' % slot, self.img)
        self.width  = self.img.width()
        self.height = self.img.height()

	C6C110_CardBlank.__init__(self, master=master, width=self.width,
                                  height=self.height)
        xypos = [(10,63),(16,63)]
        
        self.canvas = Canvas(self.card_frame, width=self.width,
                             bd=0,highlightthickness=0,
                             height=self.height,selectborderwidth=0)
        self.canvas.pack(side="top", fill=BOTH, expand='no')
        self.canvas.create_image(0,0,anchor=NW,
                                 image=eval('glb.img%d' % slot))

        for i in range(len(xypos)):
            xpos,ypos = xypos[i]
            setattr(self, 'led%d' % (i+1), CLED(self.card_frame,
                          self.canvas, shape=ROUND, width=4, status=STATUS_ON,
                          relx=xpos, rely=ypos))

class C6C110_Chassis:
    def __init__(self, master):
	self.outer=Frame(master, borderwidth=0, bg=Color.PANEL)
	self.outer.forget()  # We won't display until all
                             # the widgets have been created

        self.img = PhotoImage(file='images/6c110_chassis.gif')
        self.width  = self.img.width()
        self.height = self.img.height()

        self.canvas = Canvas(self.outer, width=self.width,
                             height=self.height,selectborderwidth=0)
        self.canvas.pack(side="top", fill=BOTH, expand='no')

        self.canvas.create_image(0,0,anchor=NW, image=self.img)

	self.rack = Frame(self.outer, bd=0, width=self.width-84,
                          height=self.height-180,
                          bg=Color.CHASSIS, highlightthickness=0)
	self.rack.place(relx=0.081, rely=0.117, anchor=NW)

        incr = 325/9
        x = 0.0
        for i in range(12):
            if i in [0,1,2,3,4,5]:
                card =C6C110_FDDI(self.rack, slot=i)
                card.card_frame.place(x=x, y=0, anchor=NW)
            elif i in [6,7,8,9]:
                card =C6C110_ENET(self.rack, slot=i)
                card.card_frame.place(x=x, y=0, anchor=NW)
            else:
                card =C6C110_PSU(self.rack, slot=i)
                card.card_frame.place(x=x, y=0, anchor=NW)
            x = x + card.width

	self.canvas.bind('<Button-1>', self.animate)

    def animate(self, event):
	import random
	choice = random.choice(range(0, len(st_wid)-1))
        op     = random.choice(range(0, len(ops)-1))
	pstr = 'st_wid[%d].%s()' % (choice, ops[op])
	self.cobj = compile(pstr, 'inline', 'exec')
	self.rack.after(50, self.doit)

    def doit(self):
	exec(self.cobj)
	self.rack.after(50, self.animate(None))

class Chassis:
    def __init__(self, master):
	self.outer=Frame(master, width=540, height=650, 
		          borderwidth=2, bg=Color.PANEL)
	self.outer.forget()  # We won't display until all
                             # the widgets have been created

        self.inner=Frame(self.outer, width=490, height=650, 
		          borderwidth=2, relief=RAISED, bg=Color.PANEL)
        self.inner.place(relx=0.5, rely=0.5, anchor=CENTER)
        
	self.rack = Frame(self.inner, bd=2, width=325, height=416,
                          bg=Color.CHASSIS)
	self.rack.place(relx=0.985, rely=0.853, anchor=SE)

        incr = 325/9
        x = 0.0
        for i in range(9):
            if i == 0:
                card =ProcessorCard(self.rack, width=incr-1, height=414)
            elif i == 1:
                card =SwitchCard(self.rack, width=incr-1, height=414)
            elif i == 2:
                card =OC3Card(self.rack, width=incr-1, height=414)
            elif i == 3:
                card =E10BASETCard(self.rack, width=incr-1, height=414)
            elif i == 4:
                card =T3AccessCard(self.rack, width=incr-1, height=414)
            elif i > 4:
                card =FastSerialCard(self.rack, width=incr-1, height=414)
            else:
                card =CardBlank(self.rack, width=incr-1, height=414)

            card.card_frame.place(x=x, y=0, anchor=NW)
            x = x + incr

	self.img = PhotoImage(file='images/logo.gif')
	self.logo=Label(self.outer, image=self.img, bd=0)
	self.logo.place(relx=0.055, rely=0.992, anchor=SW)
	self.logo.bind('<Button-1>', self.animate)

        for x in [0.02, 0.98]:
            for y in [0.0444, 0.3111, 0.6555, 0.9711]:
                Screw(self.outer, base="gray50").screw_frame.place(relx=x,
                                                 rely=y, anchor=CENTER)

        self.psu1 = PowerSupply(self.inner)
        self.psu1.psu_frame.place(relx=0.99, rely=0.004, anchor=NE)
        self.psu2 = PowerSupply(self.inner)
        self.psu2.psu_frame.place(relx=0.65, rely=0.004, anchor=NE)

        self.psu2.led.turnoff()

        screen1 = Screen(self.inner, width=150, height=600, bg=Color.PANEL)
        screen1.screen_frame.place(relx=0.16, rely=0.475, anchor=CENTER)
        screen2 = Screen(self.inner, width=330, height=80, bg=Color.PANEL)
        screen2.screen_frame.place(relx=0.988, rely=0.989, anchor=SE)

    def animate(self, event):
	import random
	choice = random.choice(range(0, len(st_wid)-1))
        op     = random.choice(range(0, len(ops)-1))
	pstr = 'st_wid[%d].%s()' % (choice, ops[op])
	self.cobj = compile(pstr, 'inline', 'exec')
	self.rack.after(50, self.doit)

    def doit(self):
	exec(self.cobj)
	self.rack.after(50, self.animate(None))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -