美文网首页
分隔窗口和使用树

分隔窗口和使用树

作者: wangyu2488 | 来源:发表于2019-12-23 09:13 被阅读0次

2019年12月18日

一.分隔窗口

image.png image.png
# coding=utf-8
import wx

# 自定义窗口类MyFrame
class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(parent=None, title='分隔窗口', size=(350, 180))
        self.Centre()  # 设置窗口居中
        splitter = wx.SplitterWindow(self, -1)  # 直接父类上
        leftpanel = wx.Panel(splitter)
        rightpanel = wx.Panel(splitter)
        splitter.SplitVertically(leftpanel, rightpanel, 100)
        splitter.SetMinimumPaneSize(80)
        list2 = ['苹果', '橘子', '香蕉']
        lb2 = wx.ListBox(leftpanel, -1, choices=list2, style=wx.LB_SINGLE)
        self.Bind(wx.EVT_LISTBOX, self.on_listbox, lb2)
        vbox1 = wx.BoxSizer(wx.VERTICAL)
        vbox1.Add(lb2, 1, flag=wx.ALL | wx.EXPAND, border=5)
        leftpanel.SetSizer(vbox1)
        vbox2 = wx.BoxSizer(wx.VERTICAL)
        self.content = wx.StaticText(rightpanel, label='右侧面板')
        vbox2.Add(self.content, 1, flag=wx.ALL | wx.EXPAND, border=5)
        rightpanel.SetSizer(vbox2)
    def on_listbox(self, event):
        s = '选择 {0}'.format(event.GetString())
        self.content.SetLabel(s)

class App(wx.App):
    def OnInit(self):
        # 创建窗口对象
        frame = MyFrame()
        frame.Show()
        return True

if __name__ == '__main__':
    app = App()
    app.MainLoop()  # 进入主事件循环

二.使用树

image.png image.png
# coding=utf-8
import wx

# 自定义窗口类MyFrame
class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(parent=None, title='树控件', size=(500, 400))
        self.Centre()  # 设置窗口居中
        splitter = wx.SplitterWindow(self)
        leftpanel = wx.Panel(splitter)
        rightpanel = wx.Panel(splitter)
        splitter.SplitVertically(leftpanel, rightpanel, 200)
        splitter.SetMinimumPaneSize(80)
        self.tree = self.createTreeCtrl(leftpanel)
        self.Bind(wx.EVT_TREE_SEL_CHANGING, self.on_click, self.tree)
        vbox1 = wx.BoxSizer(wx.VERTICAL)
        vbox1.Add(self.tree, 1, flag=wx.ALL | wx.EXPAND, border=5)
        leftpanel.SetSizer(vbox1)
        vbox2 = wx.BoxSizer(wx.VERTICAL)
        self.content = wx.StaticText(rightpanel, label='右侧面板')
        vbox2.Add(self.content, 1, flag=wx.ALL | wx.EXPAND, border=5)
        rightpanel.SetSizer(vbox2)
    def on_click(self, event):
        item = event.GetItem()
        self.content.SetLabel(self.tree.GetItemText(item))
    # 初始化树的方法
    def createTreeCtrl(self, parent):
        tree = wx.TreeCtrl(parent)
        items = []
        imglist = wx.ImageList(16, 16, True, 2)
        imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER, size=wx.Size(16, 16)))
        imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, size=wx.Size(16, 16)))
        tree.AssignImageList(imglist)
        root = tree.AddRoot("TreeRoot", image=0)
        items.append(tree.AppendItem(root, "Item 1", 0))
        items.append(tree.AppendItem(root, "Item 2", 0))
        items.append(tree.AppendItem(root, "Item 3", 0))
        items.append(tree.AppendItem(root, "Item 4", 0))
        items.append(tree.AppendItem(root, "Item 5", 0))
        for ii in range(len(items)):
            id = items[ii]
            tree.AppendItem(id, "Subitem 1", 1)
            tree.AppendItem(id, "Subitem 2", 1)
            tree.AppendItem(id, "Subitem 3", 1)
            tree.AppendItem(id, "Subitem 4", 1)
            tree.AppendItem(id, "Subitem 5", 1)
        tree.Expand(root)  # 展开根下子节点
        tree.Expand(items[0])  # 展开Item 1下子节点
        tree.Expand(items[3])  # 展开Item 4下子节点
        tree.SelectItem(root)  # 选中根节点
        return tree

class App(wx.App):
    def OnInit(self):
        # 创建窗口对象
        frame = MyFrame()
        frame.Show()
        return True

if __name__ == '__main__':
    app = App()
    app.MainLoop()  # 进入主事件循环

相关文章

  • 分隔窗口和使用树

    2019年12月18日 一.分隔窗口 二.使用树

  • vim【分隔窗口】

    9. 分隔窗口 将一个窗口分隔成多个窗口,可以同时显示或者编辑多个文件,或者可以显示或编辑同一个文件的不同位置。 ...

  • 使用tree命令导出windows的文件夹/文件的目录树

    使用tree命令导出windows的文件夹/文件的目录树 标签(空格分隔): windows技巧 使用tree命令...

  • Markdown 表格

    1、Markdown 表格的使用 表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。 语法格式如下:...

  • Markdown 表格

    Markdown 语法 基本语法 Markdown 制作表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其...

  • Markdown 系列(六) 表格

    Markdown 制作表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。这块我使用的也不是特别熟练,...

  • Markdown教程 第9章 表格

    Markdown 制作表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。 语法格式如下: 以上代码显...

  • 2018-10-15 Mac 终端basic操作

    使用“终端”窗口和标签页 新建窗口Command-N 使用相同命令新建窗口Control-Command-N 新建...

  • Android开发技术——车机技术之WMS学习

    / 窗口管理 / 窗口管理核心类介绍 窗口管理使用到的 DisplayContent,WindowToken 和 ...

  • string字符串分割问题

    今天在使用字符串分隔时使用了$分隔符,发现怎么分隔都只有一个字符,原来$是特殊字符串,不能作为分隔符,可以把$使用...

网友评论

      本文标题:分隔窗口和使用树

      本文链接:https://www.haomeiwen.com/subject/pyponctx.html