欢迎光临
我们一起进阶

Python的GUI编程(十三)Frame(框架) PanedWindow(面板)

扫码或搜索:沉默王二
发送 290992
即可立即永久解锁本站全部文章

参考:http://blog.csdn.net/jcodeer/article/details/1811339

   Frame就是屏幕上的一块矩形区域,多是用来作为容器(container)来布局窗体,内容比较少。

from Tkinter import *
root = Tk()
#以不同的颜色区别各个frame
for fm in ['red','blue','yellow','green','white','black']:
    #注意这个创建Frame的方法与其它创建控件的方法不同,第一个参数不是root
    Frame(height = 20,width = 100,bg = fm).pack()
    Label(root,text=fm,fg='purple').pack()
root.mainloop()
#添加不同颜色的Frame,大小均为20*100

from Tkinter import *
root = Tk()
fm = []
#向下面的Frame中添加一个Label
def Call1():
    Label(fm[0],text = 'Hello label').pack()

def Call2():
    Label(fm[1], text='Hello label').pack()
#以不同的颜色区别各个frame
for color in ['red','blue']:
    #注意这个创建Frame的方法与其它创建控件的方法不同,第一个参数不是root
    fm.append(Frame(height = 200,width = 400,bg = color))


fm[0].pack()
fm[1].pack()
Button(root,text='red',width=5,command=Call1).pack(side='left')
Button(root,text='blue',width=5,command=Call2).pack(side='right')
root.mainloop()
#Label被添加到下面的Frame中了,而不是root默认的最上方。

PanedWindow

PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。用户可以用鼠标移动上面的分割线来改变每个子控件的大小。
PanedWindow可以用来创建2格或者3格的布局。

from Tkinter import *
root = Tk()
panes = PanedWindow(orient = VERTICAL)
panes.pack(fill = BOTH,expand = 1)
for w in [Label,Button,Checkbutton,Radiobutton]:
    panes.add(w(panes,text = 'hello'))#使用add方法,每个pane中创建一个widget
root.mainloop()

删除PanedWindow指定的pane
from Tkinter import *
root = Tk()
ws = []
panes = PanedWindow(orient = VERTICAL)
panes.pack(fill = BOTH,expand = 1)
#创建四个pane
for w in [Label,Button,Checkbutton,Radiobutton]:
    ws.append(w(panes,text = 'hello'))
for w in ws:
    panes.add(w)
#从panes中删除包含子Button的pane,使用remove与forget相同
panes.forget(ws[1])
#panes.remove(ws[1])
root.mainloop()
#只有三个widget,Button已被删除。
在PanedWindow指定位置添加一个pane
from Tkinter import *
root = Tk()
ws = []
ps = PanedWindow(orient = VERTICAL)
ps.pack(fill = BOTH,expand = 1)
#创建四个pane
for w in [Label,Button,Checkbutton,Radiobutton]:
    ws.append(w(ps,text = 'hello'))
for w in ws:
    ps.add(w)
#在0之后添加一个Lable,出错
#ps.after(ws[0],Label(ps,text = 'world'))
#注意被添加的widget是第一个参数,after指定是位于那一个widget之后
#不要与after方法混淆了
ps.paneconfig(Label(ps,text = 'world'),after = ws[0])
root.mainloop()
#这个widget主要也是用来做Container的,使用了大量的gm方法。
赞(0) 打赏
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

小白学堂,学的不止是技术,更是前程

关于我们免责声明

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏