码迷,mamicode.com
首页 > 编程语言 > 详细

Python Tkinter 学习笔记(二)Hello_again

时间:2015-07-05 23:56:13      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

#hello_again.py
from tkinter import *
class App:
    def __init__(self,master):

        frame = Frame(master)
        frame.pack()

        self.button = Button(
            frame, text="关闭",fg="blue",command=frame.quit
            )
#也可以用foreground代替fg(缩写) self.button.pack(side
=LEFT) self.hi_there = Button( frame, text="Hello",command=self.say_hi ) self.hi_there.pack(side=LEFT) def say_hi(self): print("Hi,fudianheg.This is version 2 of ‘hello world‘") root = Tk() app = App(root) root.mainloop() #root.destory()写错一个单词怪不得销毁不了窗口...
root.destroy()

 

运行结果: 

技术分享

  当编写大的程序项目时,最好把代码用类包起来。

 

  点击Hello时,控制台会显示:

    "Hi,fudianheg.This is version 2 of ‘hello world‘

  点击关闭时,程序就终止了。

 

  __init__会创建一个parent widget(master),由(Frame)创建,存储在一个(frame)变量中。

创建这个窗口后,用(pack)函数显示出来。

  随后创建两个Button部件作为frame的子部件,并且用(pack)函数显示。

  我们在部件的构造函数中用了许多选项,作为关键字参数。第一个按钮显示“关闭”,并且用blue作为前景色,第二个显示“Hello”,也同样用了(command)选项。这个特殊的command选项指定一个函数,或者(在本例中)绑定的方法。

  这两个Button部件存储于实例中,它们紧密挨在一起,加上了side=LEFT选项后,则依次靠左排列,如果side选项没有加,那么默认是TOP,效果如图:

技术分享

  接下来,创建一个root,把root作为参数创建一个父窗口,执行mainloop循环。

  还有root.destroy()是可选的,有的环境在要在程序结束后才能退出,就要加上这一条。(例如博主的环境就是这样)

 


 

后记:

  事实上创建一个窗口部件不一定需要存储在具体的变量中。如果在创建之后并不需要对它进行操作,那么可以用这种写法:

 

  Button(frame, text="Hello", command=self.hello).pack(side=LEFT)

  如果需要在创建之后再操作,或者为了保险起见,也可以存起来

 

  w = Button(frame, text="Hello", command=self.hello)

  w.pack(side=LEFT)

 

 




后记:
  在Tcl编程中,如果要创建一个叫做“OK”的Button,作为dialog的子窗口,则要这样写:
    button.dialog.ok
  在Tkinter中是这样的:
    ok = Button(dialog)
  Tkinter会自动为每个窗口分配名字,上式ok和dialog只是参考,并不是真正的名字,真正地名字用str()读出来,如果要确定每个窗口部件的名字,那么可以这样:
    
ok = Button(dialog, name="ok")
  那么这个窗口的名字叫.dialog.ok(如果你忘了dialog的名字,那可能就叫.1234323.ok之类的),窗口部件一旦被创建名字就不能变。
 




  

 

  

Python Tkinter 学习笔记(二)Hello_again

标签:

原文地址:http://www.cnblogs.com/fudianheg/p/4622989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!