wxPython导航面板(如Finder(MacOSX)、Nautilus(Ubuntu)、Explorer(Windows7))
我的问题很简单,如何制作一个类似于 查找器(Mac OS X) 浏览器(Windows 7) 鹦鹉螺(Ubuntu) 至于使用不起作用的wx.TreeCtrl 范例 正如您所看到的,第一个问题是左侧有一个巨大的粉红色条带,您无法删除它,第二个问题是在根上,否则您必须为隐藏的缓冲区添加更多的缓冲区,第二个问题是乱七八糟的,第三个问题与三个示例中的任何一个都不一样 那么,如何获得类似于上述示例的导航面板(除了tree-ctrl示例:p) ==更新===== 在Windows(至少Windows 7)上,左侧有白色列没有问题 可能是在Linux和MacOS X上,tree ctrl小部件通常是绘制的。。。如果有人可以在MacOS X上运行上面的示例,并查看树ctrl的左侧是否有一个粉红色列(粉红色,因为示例将其设置为背景色) ==更新2===== 以iTunes为例 这似乎有点误解,我要找的不是文件管理器文件夹视图,而是导航面板侧 例如,iTunes也有这个功能,但不是一个文件管理器。它们都有一个功能,左侧有一堆可点击的“标签”,用于导航(例如,iTunes中有音乐、电影、电视节目、有声读物、应用程序,都在library下) 还有一个问题是树ctrl在Linux上不起作用(参见下图) 尝试使用 更新:wxPython导航面板(如Finder(MacOSX)、Nautilus(Ubuntu)、Explorer(Windows7)),python,navigation,wxpython,Python,Navigation,Wxpython,我的问题很简单,如何制作一个类似于 查找器(Mac OS X) 浏览器(Windows 7) 鹦鹉螺(Ubuntu) 至于使用不起作用的wx.TreeCtrl 范例 正如您所看到的,第一个问题是左侧有一个巨大的粉红色条带,您无法删除它,第二个问题是在根上,否则您必须为隐藏的缓冲区添加更多的缓冲区,第二个问题是乱七八糟的,第三个问题与三个示例中的任何一个都不一样 那么,如何获得类似于上述示例的导航面板(除了tree-ctrl示例:p) ==更新===== 在Windows(至少Window
或者,试着用它做一些事情。在演示套件中查看它的演示,这取决于您实际需要什么,可能就足够了。如果没有,您可以从头开始创建自己的目录。如果您真的想要浏览目录结构:
import os
import wx
class MainWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.panel = wx.Panel(self)
self.dir = wx.GenericDirCtrl(self.panel, size=(200, -1), style=wx.DIRCTRL_DIR_ONLY)
self.files = wx.ListCtrl(self.panel, style=wx.LC_LIST)
self.sizer = wx.BoxSizer()
self.sizer.Add(self.dir, flag=wx.EXPAND)
self.sizer.Add(self.files, proportion=1, flag=wx.EXPAND)
self.border = wx.BoxSizer()
self.border.Add(self.sizer, 1, wx.ALL | wx.EXPAND, 5)
self.panel.SetSizerAndFit(self.border)
self.Show()
self.dir.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelect)
def OnSelect(self, e):
self.files.ClearAll()
list = os.listdir(self.dir.GetPath())
for a in reversed(list):
self.files.InsertStringItem(0, a)
app = wx.App(False)
win = MainWindow(None, size=(600, 400))
app.MainLoop()
以下是一些有用的例子:
import wx
import wx.lib.agw.customtreectrl as CT
class MainWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.panel = wx.Panel(self)
self.dir = CT.CustomTreeCtrl(self.panel, size=(100, -1),
style=wx.SUNKEN_BORDER,
agwStyle=CT.TR_FULL_ROW_HIGHLIGHT | CT.TR_HIDE_ROOT | CT.TR_NO_LINES | CT.TR_ROW_LINES)
root = self.dir.AddRoot("The Root Item")
child = self.dir.AppendItem(root, "Test")
child = self.dir.AppendItem(child, "Test 2")
child = self.dir.AppendItem(child, "Test 3")
child = self.dir.AppendItem(root, "Test 4")
self.dir.ExpandAll()
self.sizer = wx.BoxSizer()
self.sizer.Add(self.dir, proportion=1, flag=wx.EXPAND)
self.border = wx.BoxSizer()
self.border.Add(self.sizer, 1, wx.ALL | wx.EXPAND, 5)
self.panel.SetSizerAndFit(self.border)
self.Show()
app = wx.App(False)
win = MainWindow(None, size=(200, 300))
app.MainLoop()
应用TR_TWIST_按钮样式的超级卷轴列表控件如何?这将使它看起来更像苹果finder。它也是纯python的,并且比普通的TreeCtrl更容易破解。如果需要Windows资源管理器外观,可能需要查看ListCtrl、ObjectListView或UltimateListCtrl。wxPython演示中有所有这些的演示(ObjectListView除外,因为它不包含在wxPython中)。导航部分使用树ctrl,因此仍然存在树ctrl和左侧空像素的相同问题没有真正的答案,但你的确实给了我一些想法,很遗憾,没有人回答这个问题哦。。。