zoukankan      html  css  js  c++  java
  • Python TK编程第一部分 Hello Again

    当你想写大一点的程序的时候,将你的代码封装到一个或者多个类里会是一个不错的办法。下面'hello world'这个例子来自Matt Conway的Tkinter Life Preserver.

    [python] view plain copy
    1. from Tkinter import *  
    2.   
    3. class App:  
    4.   
    5.     def __init__(self, master):  
    6.   
    7.         frame = Frame(master)  
    8.         frame.pack()  
    9.   
    10.         self.button = Button(  
    11.             frame, text="QUIT", fg="red", command=frame.quit  
    12.             )  
    13.         self.button.pack(side=LEFT)  
    14.   
    15.         self.hi_there = Button(frame, text="Hello", command=self.say_hi)  
    16.         self.hi_there.pack(side=LEFT)  
    17.   
    18.     def say_hi(self):  
    19.         print "hi there, everyone!"  
    20.   
    21. root = Tk()  
    22.   
    23. app = App(root)  
    24.   
    25. root.mainloop()  
    26. root.destroy() # optional; see description below  

    当你运行程序时,会出现下面的窗口。

    如果你点击右边的按键, “hi there, everyone!” 将会输出在控制台。 如果你点击左边的按键,程序就会终止。

    程序讲解:

    这个简单的程序是用类写的. 构造器 (__init__ 方法) 接受一个主窗口作为参数(root), 然后创建了几个子控件。 构造器首先创建了一个 Frame控件。frame是一个简单的容器,在这个例子中,他仅仅用来防止其它2个控件。

    class App:
        def __init__(self, master):
            frame = Frame(master)
            frame.pack()
    

    我们通过Frame类创建一个实例,并把它保存为实例的局部变量 frame. 之后,我们对其使用pack方法使其可见。

    然后我们创建2个Button,作为frame的子控件。

    self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
    self.button.pack(side=LEFT)
    
    self.hi_there = Button(frame, text="Hello", command=self.say_hi)
    self.hi_there.pack(side=LEFT)
    

    这一次我们通过关键字参数的形式给构造函数船体几个参数。 第一个button的text属性为“QUIT”,并设置前景色为红色。第一个button的text属性为“Hello”.。这两个Button的command选型也都设置了参数。这个选项用来设置一个函数或者绑定的方法,当button被点击时,相应的函数或者方法就会调用。 

    这两个button实例作为实例属性存储。他们都使用pack方法,但这次还使用了 side=LEFT参数。这意味着他们将会被尽可能的放置在frame的左边; 第一个button会被放在frame的左边,第二个button会紧贴着第一个button放置。一般来说,控件被放置的位置都是相对于他们的主控件而言的。如果没有指定side选项,默认为side=TOP.

     “hello” button 的回调函数如下所示。当用鼠标点击button时,它至是简单的想控制台输出一行信息:

    def say_hi(self):
        print "hi there, everyone!"
    

    最后,我们写一些代码创建 Tk root 窗口, 并把它作为参数传递给App类,它会成为其它控件的父窗口。

    root = Tk()
    
    app = App(root)
    
    root.mainloop()
    root.destroy()
    

    调用 mainloop 使Tk进入事件循环, 当点击QUIT或者关闭窗口时程序才会终止。

    destroy只有你在特殊的环境下运行这个例子才需要;当时间循环被终止的时候,它会明确的释放这个窗口。 一些开发环境只有调用这个方法才会终止Python进程。

  • 相关阅读:
    Unix命令大全
    vs2008 与 IE8出现的兼容性问题
    Java 创建文件、文件夹以及临时文件
    如何修改Wamp中mysql默认空密码
    PAT 乙级真题 1003.数素数
    Tags support in htmlText flash as3
    DelphiXE4 FireMonkey 试玩记录,开发IOS应用 还是移植
    10 Great iphone App Review sites to Promote your Apps!
    HTML tags in textfield
    Delphi XE4 IOS 开发, "No eligible applications were found“
  • 原文地址:https://www.cnblogs.com/monsteryang/p/6558523.html
Copyright © 2011-2022 走看看