您的位置:首页 > 其它

tkinter中的grid最好的总结

2015-06-03 17:40 274 查看
Tkinter参考中最推荐使用的一个布局器。实现机制是将Widget逻辑上分割成表格,在指定的位置放置想要的Widget就可以了。

使用grid显示窗体的主要流程:

  self.thing = constructor(parent,……)#constructor可以为Button,Frame等

  self.thing.grid(……)

 

    grid方法介绍:

        w.grid(option=value,……)

        向窗体注册并显示控件

    主要参数:

    column: 控件放置位置的列数,从0开始算起,默认为0;

    clomnspan: 设置单元格横向跨越的列数,例如:w.grid(row=0, column = 2, columnspan=3);

    in_:重新设置w为窗体w2的子窗体,方法:in_=w2.w2必须是w的父窗体子类;

    ipadx:设置控件里面x方向空白区域大小;

    ipady:设置控件里面y方向空白区域大小;

    padx:设置控件周围x方向空白区域保留大小;

    pady:设置控件周围y方向空白区域保留大小;

    row:控制放置的行数,从0开始算起,默认为上一个位占领的行数

    rowspan:设置单元格纵向跨越的列数,例如:w.grid(row=0, column = 2,rowspan=4, columnspan=5);

    sticky:设置对齐方式

 

如果未设置对齐方式,默认为将控件放置在窗体中间。对齐方式主要有如下几种:

1) 通过使用sticky=NE(右上角),SE(右下角),SW(左下角),NW(左上角)来设置控件位置

2) 通过使用sticky=N(上中),E(右中),S(底中),W(左中)来设置控件放置中间位置

3) sticky=N+S,向垂直方向拉升而保持水平中间对齐

4) sticky=E+W,向水平方向拉升而保持垂直中间对齐

5)   sticky=N+E+S+W,以水平方向和垂直方向拉升的方式填充单元格

#!/usr/bin/python     

#Filename: button.py     

# -*- coding: utf-8 -*-  

  

from Tkinter import *     

    

class Application(Frame):     

    def say_hi(self):     

        print "hi there, everyone!"    

    def say_bitmap(self):     

        print "bitmap show"    

             

    def createWidgets(self):     

        self.hi_there = Button(self)  

        self.hi_there["text"] = "Hello",  #设置按钮上的显示字符     

        self.hi_there["command"] = self.say_hi  #设置按钮按下时的回调函数     

        self.hi_there["bg"] = "red"           #设置背景颜色     

        self.hi_there["fg"] = "yellow"        #设置显示的字体颜色     

        self.hi_there["activebackground"] = "green"   #设置按钮被按下时的背景颜色     

        self.hi_there["activeforeground"] = "black"   #设置按钮被按下时的字体颜色     

        self.hi_there["bd"] = "5"              #设置按钮边框像素,默认为2个像素     

        self.hi_there["cursor"] = "hand1"      #设置鼠标放置在按钮上的形状     

        self.hi_there["padx"] = 100;           #设置按钮横向的空白长度     

        self.hi_there["pady"] = 100;           #设置按钮纵向的空白长度     

        self.hi_there["underline"] = 1;        #设置显示字体的下划线在哪个字符下面     

             

        self.hi_there.grid(row = 0, column = 0)     

    

        self.Bitmap = Button(self)     

        self.Bitmap["text"] = "Bitmap"    

        self.Bitmap["command"] =  self.say_bitmap     

        self.Bitmap["bitmap"] = "question"             

        self.Bitmap.grid(row=1, column=0)     

             

        self.QUIT = Button(self)     

        self.QUIT["text"] = "QUIT"    

        self.QUIT["fg"]   = "red"    

        self.QUIT["command"] =  self.quit     

        self.QUIT.grid(row=2, column=0)     

    

    def __init__(self, master=None):     

        Frame.__init__(self, master)     

        self.pack()     

        self.createWidgets()     

    

root = Tk()     

app = Application(master=root)     

app.mainloop()     

root.destroy() 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: