【发布时间】:2012-01-04 01:24:32
【问题描述】:
如何允许 UltimateListCtrl 能够根据用户输入重新排序/重新排列自身?以下显示了这种能力,但我不确定它是如何完成的。 数据 = { 0:(“3”,“3”,“1”), 1:(“2”,“1”,“2”), 2:(“1”,“2”,“3”) }
import wx
import wx.lib.mixins.listctrl as listmix
from wx.lib.agw import ultimatelistctrl as ULC
class MyList(ULC.UltimateListCtrl, listmix.ColumnSorterMixin):
def __init__(self, parent, columns):
ULC.UltimateListCtrl.__init__(self, parent, agwStyle=ULC.ULC_REPORT | ULC.ULC_HAS_VARIABLE_ROW_HEIGHT)
self.itemDataMap = DATA
listmix.ColumnSorterMixin.__init__(self, columns)
self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColumn)
def OnColumn(self, e):
self.Refresh()
e.Skip()
def GetListCtrl(self):
return self
class MainWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.list = MyList(self, 3)
self.list.InsertColumn(0, "A")
self.list.InsertColumn(1, "B")
self.list.InsertColumn(2, "C")
items = DATA.items()
for key, data in items:
index = self.list.Append(data)
self.list.SetItemData(index, key)
self.Show()
app = wx.App(False)
win = MainWindow(None)
app.MainLoop()
【问题讨论】:
-
The following shows the ability however i am not sure how it can be done。你能改写你的问题吗?我不明白问题是什么。据我所知,您的代码完美无缺。reorder/rearrange itself with the users input是什么意思?显示您对给定条目的期望。