首页 > 解决方案 > wxPython:有没有办法在 wx.dataview.DataViewListCtrl 的列标题中显示排序箭头指示符?

问题描述

Python v3.7.9 x64;wxPython v4.1.0;微软视窗 10 x64

正如这个问题的标题所述,有没有人知道在wx.dataview.DataViewListCtrl小部件的列标题上显示排序箭头指示器的方法?我已经用尽了我的搜索能力,并且已经持续了好几天。我对这是否可能一无所知,尽管我认为这是因为 Windows 在列标题中有排序箭头。最好使用本机排序箭头,尽管如果这不可能,那么为排序箭头添加图形就可以了。

使用wx.dataview.EVT_DATAVIEW_COLUMN_HEADER_CLICK事件,我已经完成了自己的排序,但如果最终用户可以直观地看到一个排序箭头,指示该列能够被排序,那将是有益的。否则,最终用户怎么会知道。

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

谢谢

标签: pythonlistsortingwxpython

解决方案


我设法弄清楚是否有人遇到过这个问题,这很简单。

创建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)

推荐阅读