使用python Tk的实现tablepanel+treeview

转发https://www.oschina.net/code/snippet_1033376_26310

from tkinter import *
from tkinter import ttk
import sys
class Application(Frame):
     def __init__( self ,master):
         Frame.__init__( self ,master)
         self .pack()
         self .t = master
         self .createWidgets()
         self .lock1 = 0
         self .lock2 = 0
     def createWidgets( self ):
         self .tb = ttk.Notebook( self ,height = 200 ,width = 300 )
         self .tree = ttk.Treeview( self )
         ysb = ttk.Scrollbar( self , orient = 'vertical' , command = self .tree.yview)
         xsb = ttk.Scrollbar( self , orient = 'horizontal' , command = self .tree.xview)
         self .tree.configure(yscroll = ysb. set , xscroll = xsb. set )
         self .tree.heading( '#0' , text = 'Path' , anchor = 'w' )
         path = [ '首页' , '注册' ]
         root_node = self .tree.insert(' ', ' end ', text=' 功能', open = True )
         self .process_directory(root_node, path)
         #构建一个grid
         self .tree.grid(row = 0 , column = 0 ,sticky = 'n' )
         ysb.grid(row = 0 , column = 1 , sticky = 'ns' )
         xsb.grid(row = 1 , column = 0 , sticky = 'ew' )
         self .tb.grid(row = 0 ,column = 2 )
         self .grid()
         self .tree.bind( '<<TreeviewSelect>>' , self .func)
     def process_directory( self , parent, path):
         #遍历路径下的子目录
         for p in path:
             oid = self .tree.insert(parent, 'end' , text = p, open = False )
     def func( self ,event):
         #返回对象为Tuple
         select = self .tree.selection()
         select = select[ 0 ]
         if select = = 'I002' and self .lock1 = = 0 :
             lable = Label(text = '欢迎登陆!' ,fg = 'black' )
             self .tb.add(lable,text = '首页' )
             self .lock1 = 1
         if select = = 'I003' and self .lock2 = = 0 :
             self .child = Frame( self .t)
             self .name = StringVar()
             self .name. set ( '必填' )
             self .psw = StringVar()
             self .psw. set ( '必填' )
             lb = Label( self .child,text = '用户名' ,fg = 'black' )
             lb.grid(row = 0 ,column = 0 ,pady = 15 ,padx = 10 ,sticky = 'se' )
             name = Entry( self .child)
             name[ 'textvariable' ] = self .name
             name.grid(row = 0 ,column = 1 )
             la = Label( self .child,text = '密码' ,fg = 'black' )
             la.grid(row = 1 ,column = 0 ,padx = 10 ,sticky = 'se' )
             psw = Entry( self .child)
             psw[ 'textvariable' ] = self .psw
             psw.grid(row = 1 ,column = 1 )
             style = ttk.Style()
             style. map ( "C.TButton" ,foreground = [( 'pressed' , 'red' ), ( 'active' , 'blue' )],
             background = [( 'pressed' , '!disabled' , 'black' ), ( 'active' , 'white' )])
             btn1 = ttk.Button( self .child,text = '提交' ,style = 'C.TButton' ,command = self .submit)
             btn2 = ttk.Button( self .child,text = '重置' ,style = 'C.TButton' ,command = self .reset)
             btn1.grid(row = 2 ,column = 0 ,pady = 10 ,padx = 10 ,sticky = 'e' )
             btn2.grid(row = 2 ,column = 1 )
             self .tb.add( self .child,text = '修改密码' )
             self .lock2 = 1
     def submit( self ):
         fp = open ( '1.txt' , 'w' )
         if self .name.get()! = '':
             fp.writelines( self .name.get() + '\n' )
         if self .psw.get()! = '':
             fp.writelines( self .psw.get())
         fp.close()
     def reset( self ):
         self .name. set ('')
         self .psw. set ('')
root = Tk()
app = Application(root)
app.mainloop()

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值