【问题标题】:wxPython: is there a way to show a sort arrow indicator in the column header of a wx.dataview.DataViewListCtrl?wxPython:有没有办法在 wx.dataview.DataViewListCtrl 的列标题中显示排序箭头指示符?
【发布时间】:2020-10-15 16:04:38
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

  • 您可以尝试的一件事是使用 unicode 符号。例如:箭头(▲ ▼)。它是文本的一部分,您可以附加到标题的文本中。 xahlee.info/comp/unicode_arrows.html
  • 这是个好主意,这就是我要做的。谢谢!

标签: python list sorting wxpython


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    相关资源
    最近更新 更多