Windows 上的 Python:如何使用 wxPython 为 wx.ListCtrl 小部件创建可访问标签?

2024-02-11

在 Windows 11 上的 Python 3.10.5 中使用 wxPython 4.2.0 包,我试图创建一个带标签的wx.ListCtrl小部件,其中小部件标签将被屏幕阅读器识别,但我找不到这样做的方法。到目前为止,我有以下代码:

hbox = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self.panel, wx.ID_ANY, 'My label')
hbox.Add(label, 1, wx.EXPAND | wx.ALIGN_LEFT | wx.ALL, 5)
list = wx.ListCtrl(self.panel, wx.ID_ANY)
hbox.Add(list, 1, wx.EXPAND | wx.ALIGN_LEFT | wx.ALL, 5)

如果我使用上面的代码,标签和列表都会被创建,但它们似乎没有捆绑在一起,因为当列表小部件聚焦时,屏幕阅读器仅叙述“列表视图”,忽略标签。但是,如果在相同的代码中我替换wx.ListCtrl with wx.ListBox,标签开始毫无问题地被叙述。但我需要使用wxListCtrl, not wx.Listbox.

我怎样才能标记wx.ListCtrl从可访问性的角度正确地设置小部件,以便当使用屏幕阅读器聚焦时,将叙述小部件的标签?


所以有一个标签的解决方法wx.ListCtrl https://docs.wxpython.org/wx.ListCtrl.html小部件,这是我可以接受的,至少从屏幕阅读器用户的角度来看。该解决方案在于用一个包装 wx.ListCtrl 小部件wx.StaticBox https://docs.wxpython.org/wx.StaticBox.html or wx.StaticBoxSizer https://docs.wxpython.org/wx.StaticBoxSizer.html类似物体此处描述 https://stackoverflow.com/questions/73446177/python-on-windows-how-to-enclose-widgets-in-wxpython-to-labelled-group-similar。代码可能如下所示:

panel = wx.Panel(self)
box = wx.StaticBoxSizer(wx.VERTICAL, panel, 'Your lable for the list goes here')
list = wx.ListCtrl(box.GetStaticBox(), wx.ID_ANY)
box.Add(list)
panel.SetSizer(box)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 上的 Python:如何使用 wxPython 为 wx.ListCtrl 小部件创建可访问标签? 的相关文章

随机推荐