wxPython:有没有一种方法可以在wx.dataview.DataViewListCtrl的列标题中显示排序箭头指示符?

问题描述

Python v3.7.9 x64; wxPython v4.1.0; MS Windows 10 x64

正如该问题的标题所述,有人知道在wx.dataview.DataViewListCtrl小部件的列标题显示排序箭头指示符的方法吗?我实际上已经用尽了搜索能力,并且已经花了好几天了。我不知道这是否可行,尽管我认为这是因为Windows在列标题中有排序箭头。最好使用本机排序箭头,尽管如果不可能的话,则可以为排序箭头添加图形。

使用wx.dataview.EVT_DATAVIEW_COLUMN_HEADER_CLICK事件,我已经完成了自己的排序,但是如果最终用户可以直观地看到表明该列可以排序的排序箭头,那将是有益的。否则,最终用户将如何知道。

如果这是可行的,那么一些示例代码链接或其他任何内容都会有所帮助。

谢谢

解决方法

我设法弄清楚了是否还有其他人有这个问题,这很简单。

在创建DataViewListCtrl对象之后,您可以选择特定的列或将它们全部排序。

self.list_control = wx.dataview.DataViewListCtrl(parent)  # DataViewListCtrl object

如果只希望对一列进行排序:

first_column = self.list_control.Columns[0]  # get the first column
first_column.SetSortable(sortable=True)  # make first column sortable

如果要使所有列都可排序:

for column in self.list_control.Columns:
    column.SetSortable(sortable=True)