日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

wxpython使用方法_python图形界面开发之wxPython树控件使用方法详解

發布時間:2023/12/10 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wxpython使用方法_python图形界面开发之wxPython树控件使用方法详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

wxPython樹控件介紹

樹(tree)是一種通過層次結構展示信息的控件,如下圖所示是樹控件示例,左窗口中是樹控件,在wxPython中樹控件類是wx.TreeCtrl。

wx.TreeCtrl常用的方法有

AddRoot(text, image=-1, selImage=-1, data=None)。添加根節點,text參數根節點顯示的文本;image參數是該節點未被選中時的圖片索引,wx.TreeCtrl中使用的圖片被放到wx.ImageList圖像列表中;selImage參數是該節點被選中時的圖片索引。data參數是給節點傳遞的數據。方法返回節點,節點類型是wx.TreeItemId。

AppendItem(parent, text, image=-1, selImage=-1, data=None)。添加子節點,parent 參數是父節點,其他參數同AddRoot()方法。方法返回值wx.TreeItemId。

SelectItem(item, select=True)。選中item節點。

Expand(item)。展開item節點。

ExpandAll()。展開根節點下的所有子節點。

ExpandAllChildren(item)。展開item節點下的所有子節點。

AssignImageList(imageList)。將wx.ImageList圖像列表保存到樹中,這樣就可以在AddRoot()和AppendItem()方法中使用圖像列表索引了。

wxPython樹控件代碼實例

下面用代碼實現上圖所示的效果:

import wx

# 自定義窗口類MyFrame

class MyFrame(wx.Frame):

def __init__(self):

super().__init__(parent=None, title="Tree", size=(500, 400))

self.Center()

swindow = wx.SplitterWindow(parent=self, id=-1)

left = wx.Panel(parent=swindow)

right = wx.Panel(parent=swindow)

# 設置左右布局的分割窗口left和right

swindow.SplitVertically(left, right, 200)

# 設置最小窗格大小,左右布局指左邊窗口大小

swindow.SetMinimumPaneSize(80)

# 創建一棵樹

self.tree = self.CreateTreeCtrl(left)

self.Bind(wx.EVT_TREE_SEL_CHANGING, self.on_click, self.tree)

# 為left面板設置一個布局管理器

vbox1 = wx.BoxSizer(wx.VERTICAL)

left.SetSizer(vbox1)

vbox1.Add(self.tree, 1, flag=wx.EXPAND | wx.ALL, border=5)

# 為right面板設置一個布局管理器

vbox2 = wx.BoxSizer(wx.VERTICAL)

right.SetSizer((vbox2))

self.st = wx.StaticText(right, 2, label='右側面板')

vbox2.Add(self.st, 1, flag=wx.EXPAND | wx.ALL, border=5)

def on_click(self, event):

item = event.GetItem()

self.st.SetLabel(self.tree.GetItemText(item))

def CreateTreeCtrl(self, parent):

tree = wx.TreeCtrl(parent)

# 通過wx.ImageList()創建一個圖像列表imglist并保存在樹中

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=(16, 16)))

tree.AssignImageList(imglist)

# 創建根節點和5個子節點并展開

root = tree.AddRoot('TreeRoot', image=0)

item1 = tree.AppendItem(root, 'Item1', 0)

item2 = tree.AppendItem(root, 'Item2', 0)

item3 = tree.AppendItem(root, 'Item3', 0)

item4 = tree.AppendItem(root, 'Item4', 0)

item5 = tree.AppendItem(root, 'Item5', 0)

tree.Expand(root)

tree.SelectItem(root)

# 給item1節點添加5個子節點并展開

tree.AppendItem(item1, 'file 1', 1)

tree.AppendItem(item1, 'file 2', 1)

tree.AppendItem(item1, 'file 3', 1)

tree.AppendItem(item1, 'file 4', 1)

tree.AppendItem(item1, 'file 5', 1)

tree.Expand(item1)

# 給item2節點添加5個子節點并展開

tree.AppendItem(item2, 'file 1', 1)

tree.AppendItem(item2, 'file 2', 1)

tree.AppendItem(item2, 'file 3', 1)

tree.AppendItem(item2, 'file 4', 1)

tree.AppendItem(item2, 'file 5', 1)

tree.Expand(item2)

# 返回樹對象

return tree

class App(wx.App):

def OnInit(self):

# 創建窗口對象

frame = MyFrame()

frame.Show()

return True

def OnExit(self):

print("應用程序退出")

return 0

if __name__ == '__main__':

app = App()

app.MainLoop()

運行結果

上圖的運行結果如下:

更多關于python圖形界面開發請查看下面的相關鏈接

總結

以上是生活随笔為你收集整理的wxpython使用方法_python图形界面开发之wxPython树控件使用方法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。