wxPython的树形目录控件

自从开始学wxPython以来就一直想找到一个树形目录控件,但却一直没找到,我还以为wxPython根本就没有提供这样的控件。前几天无意中在wxPython演示文件里找到了这个控件,欣喜若狂,小研究了下,编写了一个小型的演示,可以输出所激活文件的路径名。代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Created on 2009-10-17

@author: jon.ju@msn.com
'''
import wx
import os
import sys

class myApp(wx.App):

	def OnInit(self):
		frame=wx.Frame(parent=None,title='GenericDirCtrl')
		panel=wx.Panel(frame,-1)

		# 目录控件
		self.dir1 = wx.GenericDirCtrl(panel, -1,dir="E:", size=(200,225), style=0)

		# 目录控件中的树形控件
		self._tree=self.dir1.GetTreeCtrl()

		# 绑定激活文件行为,如双击文件时
		self.dir1.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnOpen)
		frame.Show()
		return True

	# 双击文件时显示文件路径
	def OnOpen(self,evt):
		# 如果对象是目录,则打印'这是目录'
		if os.path.isdir(self.dir1.GetPath()):
			print '这是目录'
			evt.Skip()
			return

		# 如果对象是文件,则显示文件目录
		else:
			print self.dir1.GetFilePath().encode(sys.getfilesystemencoding())

if __name__=='__main__':
	app=myApp(False)
	app.MainLoop()

这里所用到的树形目录控件就是GenericDirCtrl,它继承自wxPython的树控件,所以树控件的属性和行为,GenericDirCtrl都是可以直接使用的。

此条目发表在 python 分类目录,贴了 , , , , 标签。将固定链接加入收藏夹。

wxPython的树形目录控件》有 3 条评论

  1. 键盘男孩 说:

    太谢谢了!我正好需要这个,我和你的感觉一样,欣喜若狂啊!!!!!!

  2. 键盘男孩 说:

    我还想问一下有没有办法让他只显示特定的目录,这个东东把我整个磁盘都翻出来了。

  3. admin 说:

    只找到默认显示某个目录的做法,但只显示某个目录的功能我还没有找到。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>