python3使用tkinter做界面之拆分窗口(SplitWindow)
2012-06-12 23:55
691 查看
from tkinter import *
from idlelib.tabbedpages import *
class MainFrame(Frame):
def __init__ (self, master=None, cnf={}, **kw):
self.master = master
super(MainFrame,self).__init__(self.master,cnf)
# create a menu
self.mmenu = Menu(root)
self.master.config(menu=self.mmenu)
self.master.rowconfigure( 0, weight = 1 )
self.master.columnconfigure( 0, weight = 1 )
self.grid( sticky = W+E+N+S )
self.BottomLabel = Label(self.master,text='top',width=1,bg='Blue')
self.BottomLabel.pack(side=TOP, expand=NO,fill=X)
self.BottomLabel = Label(self.master,text='bottom',width=1,bg='Blue')
self.BottomLabel.pack(side=BOTTOM, expand=NO,fill=X)
self.LeftCanv = Canvas(self.master, bg='Blue',width = 175, height = 30 )
self.LeftCanv.pack(side=LEFT, expand=NO,fill=Y)# padx=10, pady=5, ipadx=5, ipady=5,
#self.LeftCanv.grid( row = 0, column = 0, sticky = W+E+N+S )
#self.tabPage=TabbedPageSet(self.master, page_names=['Foobar','Baz'], n_rows=0,
# expand_tabs=False#,width = 175, height = 30
# )
#self.tabPage.pack(side=LEFT, expand=NO, fill=BOTH)
self.MidLabel = Label(self.master,text='',width=0, cursor='sb_h_double_arrow')
self.MidLabel.pack(side=LEFT, expand=NO,fill=Y)
self.MidLabel.bind("<B1-Motion>", self.SetLeftCanvSize)
self.RightCanv = Canvas(self.master, bg='Pink')
self.RightCanv.pack(side=RIGHT, expand=YES, fill=BOTH)
obj1 = self.RightCanv.create_text(50, 30, text='Click me one')
#self.RightCanv.grid( row=0, column=1, sticky = W+E+N+S )
self.AddMenu()
def AddMenu (self):
filemenu = Menu(self.mmenu)
filemenu.add_command(label="New", command=self.quit)
filemenu.add_command(label="Open...", command=self.quit)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=self.quit)
self.mmenu.add_cascade(label="File", menu=filemenu)
configmenu = Menu(self.mmenu)
configmenu.add_command(label="我的设置", command=self.quit)
self.mmenu.add_cascade(label="设置", menu=configmenu)
def SetLeftCanvSize (self, event):
self.LeftCanv.config(width=self.LeftCanv.winfo_width()+event.x-7)
#self.tabPage.config(width=self.tabPage.winfo_width()+event.x-7)
def __del__ (self):
print('退出')
if __name__=='__main__':
root = Tk()
MF = MainFrame(root, width = 800, height = 600)
MF.pack()
root.mainloop()
from idlelib.tabbedpages import *
class MainFrame(Frame):
def __init__ (self, master=None, cnf={}, **kw):
self.master = master
super(MainFrame,self).__init__(self.master,cnf)
# create a menu
self.mmenu = Menu(root)
self.master.config(menu=self.mmenu)
self.master.rowconfigure( 0, weight = 1 )
self.master.columnconfigure( 0, weight = 1 )
self.grid( sticky = W+E+N+S )
self.BottomLabel = Label(self.master,text='top',width=1,bg='Blue')
self.BottomLabel.pack(side=TOP, expand=NO,fill=X)
self.BottomLabel = Label(self.master,text='bottom',width=1,bg='Blue')
self.BottomLabel.pack(side=BOTTOM, expand=NO,fill=X)
self.LeftCanv = Canvas(self.master, bg='Blue',width = 175, height = 30 )
self.LeftCanv.pack(side=LEFT, expand=NO,fill=Y)# padx=10, pady=5, ipadx=5, ipady=5,
#self.LeftCanv.grid( row = 0, column = 0, sticky = W+E+N+S )
#self.tabPage=TabbedPageSet(self.master, page_names=['Foobar','Baz'], n_rows=0,
# expand_tabs=False#,width = 175, height = 30
# )
#self.tabPage.pack(side=LEFT, expand=NO, fill=BOTH)
self.MidLabel = Label(self.master,text='',width=0, cursor='sb_h_double_arrow')
self.MidLabel.pack(side=LEFT, expand=NO,fill=Y)
self.MidLabel.bind("<B1-Motion>", self.SetLeftCanvSize)
self.RightCanv = Canvas(self.master, bg='Pink')
self.RightCanv.pack(side=RIGHT, expand=YES, fill=BOTH)
obj1 = self.RightCanv.create_text(50, 30, text='Click me one')
#self.RightCanv.grid( row=0, column=1, sticky = W+E+N+S )
self.AddMenu()
def AddMenu (self):
filemenu = Menu(self.mmenu)
filemenu.add_command(label="New", command=self.quit)
filemenu.add_command(label="Open...", command=self.quit)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=self.quit)
self.mmenu.add_cascade(label="File", menu=filemenu)
configmenu = Menu(self.mmenu)
configmenu.add_command(label="我的设置", command=self.quit)
self.mmenu.add_cascade(label="设置", menu=configmenu)
def SetLeftCanvSize (self, event):
self.LeftCanv.config(width=self.LeftCanv.winfo_width()+event.x-7)
#self.tabPage.config(width=self.tabPage.winfo_width()+event.x-7)
def __del__ (self):
print('退出')
if __name__=='__main__':
root = Tk()
MF = MainFrame(root, width = 800, height = 600)
MF.pack()
root.mainloop()
相关文章推荐
- python3使用tkinter做界面之颜色
- python3使用tkinter做界面之鼠标提示(ToolTip)
- Pycharm使用技巧:Split Vertically/Horizontally(垂直/水平拆分窗口)
- Visual Studio使用小技巧3 – 标签分组(Tab Group)和分割窗口(Split window)
- Visual Studio使用小技巧3 &ndash; 标签分组(Tab Group)和分割窗口(Split window)
- Visual Studio使用小技巧3 &ndash; 标签分组(Tab Group)和分割窗口(Split window)
- python3使用tkinter做界面之文件树FileTreeWidget
- python使用tkinter写带界面的工具
- python基本使用(4)— 窗口TKinter
- Python图形界面编程---Tkinter模块使用
- python split()函数使用拆分字符串 将字符串转化为列表
- python使用tkinter写带界面的工具
- python3使用tkinter做界面之菜单
- Android手机UI设计---”知乎“界面外观模仿篇(二)---在Fragment里使用自定义listview以及popupwindow弹出窗口
- window下使用Mingw编译python扩展库ujson
- 使用windows窗口界面来删除域控制器或域
- Tkinter 8.5 参考手册: a GUI for Python (五)11 窗口的名称
- Python初学——窗口视窗Tkinter
- 使用java+Mysql数据库做一个简单的登录窗口界面
- python 笔记 python编译器初识以及split() 、pop()的使用 《笨办法学Python》习题25 ——12.29