免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2294 | 回复: 0
打印 上一主题 下一主题

Python Tkinter GUI 常用控件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-25 16:49 |只看该作者 |倒序浏览

               
               
               
                from Tkinter import *
from tkMessageBox import *
class EntryDemo( Frame):
    """ Demonstrate Entrys and Envent Building"""
    def __init__( self ):
        Frame.__init__(self)
        self.pack(expand=YES,fill = BOTH)
        self.master.title("Testing Entry Components")
        self.master.geometry("600x300")  #width X length
        #Entry Demo
        self.frame1 = Frame(self)
        self.frame1.pack( pady = 5 )    #垂直间距
        
        self.text1 = Entry(self.frame1, name="text1")  #放置在frame1上
        self.text1.bind("",self.showContents )
        self.text1.pack(side=LEFT, padx=5)
        self.text2 = Entry(self.frame1, name="text2")
        self.text2.insert(INSERT, "Enter text here")
        self.text2.bind("",self.showContents )
        self.text2.pack(side=LEFT,padx=5)
        self.frame2=Frame(self)
        self.frame2.pack(pady=5)
        
        self.text3=Entry(self.frame2, name="text3")
        self.text3.insert(INSERT,"Uneditable text field")
        self.text3.config(state=DISABLED)
        self.text3.bind("",self.showContents )
        self.text3.pack(side=LEFT,padx=5)
        self.text4=Entry(self.frame2, name="text4", show="*")
        self.text4.insert(INSERT,"Hidden text")
        self.text4.bind("",self.showContents )
        self.text4.pack(side=LEFT, padx=5)
        #button Demo
        self.frame3= Frame(self)
        self.frame3.pack(pady = 5)
        self.plainButton=Button(self.frame3, text="Planin Button",\
            command= self.pressedPlain)
        self.plainButton.bind("", self.rolloverEnter)  #鼠标事件:进入
        self.plainButton.bind("", self.rolloverLeave)  #鼠标事件:离开
        self.plainButton.pack(side=LEFT,padx=5, pady=5)
        #Check button Demo
        self.frame4= Frame(self)
        self.frame4.pack(pady = 5)
        self.text5 = Entry(self.frame4, width=40, font = "Arial 10")
        self.text5.insert(INSERT, "Watch the font Style change")
        self.text5.pack(padx=5, pady=5)
        self.frame5= Frame(self)
        self.frame5.pack(pady = 5)
        self.boldOn=BooleanVar()
        self.checkBold=Checkbutton(self.frame5,text = "Bold",variable=self.boldOn, command=self.changeFont)
        self.checkBold.pack(side=LEFT,padx=5,pady=5)
        self.italicOn=BooleanVar()
        self.checkItalic=Checkbutton(self.frame5,text="Italic",variable=self.italicOn,command=self.changeFont)
        self.checkItalic.pack(side=LEFT, padx=5, pady=5)
        #radio button Demo
        self.frame6= Frame(self)
        self.frame6.pack(pady = 5)
        
        self.text6 = Entry(self.frame6, width=40, font = "Arial 10")
        self.text6.insert(INSERT, "Watch the font Style change--radio button")
        self.text6.pack(padx=5, pady=5)
        
        self.frame7= Frame(self)
        self.frame7.pack(pady = 5)
        fontSelections = ["Plain", "Bold", "Italic","Bold/Italic"]
        self.chosenFont=StringVar()
            #initial selection
        self.chosenFont.set(fontSelections[0])
        for style in fontSelections:
            aButton = Radiobutton(self.frame7, text=style,variable=self.chosenFont, value=style,command = self.changeFontRadio)
            aButton.pack(side = LEFT, padx=5, pady=5)
   
    def pressedPlain(self):
        showinfo("Message","You pressed Plain Button")
    def rolloverEnter(self,event):
        event.widget.config(relief=GROOVE)
    def rolloverLeave(self,event):
        event.widget.config(relief=RAISED)
        
    def changeFont(self):
        desiredFont="Arial 10"
        if self.boldOn.get():
            desiredFont += " bold"
        if self.italicOn.get():
            desiredFont += " italic"
        self.text5.config(font=desiredFont)
    def changeFontRadio(self):
        desiredFont="Arial 10"
        if self.chosenFont.get() == "Bold":
            desiredFont += " bold"
        elif self.chosenFont.get()=="Italic":
            desiredFont += " italic"
        elif self.chosenFont.get()=="Bold/Italic":
            desiredFont += " bold italic"
        self.text6.config(font = desiredFont)
        
            
        
    def showContents(self, event):
        theName=event.widget.winfo_name()
        theContents=event.widget.get()
        showinfo("Message", theName +":"+ theContents)
def main():
    EntryDemo().mainloop()
if __name__=="__main__":
    main()
        
        
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/29089/showart_430338.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP