You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pywinauto选择ListBox中的指定ListItem?

如何选择ListBox中的特定ListItem

问题背景

控件树结构

|    | GroupBox - 'HPF'    (L775, T613, R882, B893)
   |    | ['HPF', 'HPFGroupBox', 'GroupBox2', 'HPF0', 'HPF1']
   |    | child_window(title="HPF", control_type="Group")
   |    |    | 
   |    |    | ListBox - ''    (L775, T613, R882, B893)
   |    |    | ['ListBox']
   |    |    |    | 
   |    |    |    | ListItem - 'HPF'    (L775, T621, R882, B659)
   |    |    |    | ['HPF2', 'ListItem', 'HPFListItem', 'ListItem0', 'ListItem1']
   |    |    |    | child_window(title="HPF", control_type="ListItem")
   |    |    |    | 
   |    |    |    | ListItem - 'LPF'    (L775, T658, R882, B697)
   |    |    |    | ['LPF', 'ListItem2', 'LPFListItem']
   |    |    |    | child_window(title="LPF", control_type="ListItem")
   |    |    |    | 
   |    |    |    | ListItem - 'Peak/Dip'    (L775, T696, R882, B734)
   |    |    |    | ['Peak/DipListItem', 'Peak/Dip', 'ListItem3']
   |    |    |    | child_window(title="Peak/Dip", control_type="ListItem")
   |    |    |    | 
   |    |    |    | ListItem - 'Notch'    (L775, T733, R882, B772)
   |    |    |    | ['NotchListItem', 'ListItem4', 'Notch']
   |    |    |    | child_window(title="Notch", control_type="ListItem")
   |    |    |    | 
   |    |    |    | ListItem - 'HighShelf'    (L775, T771, R882, B809)
   |    |    |    | ['HighShelf', 'HighShelfListItem', 'ListItem5']
   |    |    |    | child_window(title="HighShelf", control_type="ListItem")

已执行代码及输出

已通过以下代码获取ListBox的所有ListItem文本:

app = dlg.ListBox.texts()
print(app)

输出结果:

[['HPF'], ['LPF'], ['Peak/Dip'], ['Notch'], ['HighShelf'], ['LowShelf'], ['AllPass']]

需求:实现选择ListBox中某一特定ListItem的操作。


解决方案

以下是几种可行的实现方式:

1. 通过文本直接选择

利用ListBox的select()方法,直接传入目标ListItem的文本即可:

# 选择文本为'LPF'的选项
dlg.ListBox.select('LPF')

# 选择带特殊字符的选项,比如'Peak/Dip'
dlg.ListBox.select('Peak/Dip')

2. 通过索引选择

根据输出的文本列表,每个选项对应一个从0开始的索引,可以通过索引定位选择:

# 选择索引为4的'HighShelf'
dlg.ListBox.select(4)

# 选择索引为6的'AllPass'
dlg.ListBox.select(6)

3. 直接定位ListItem控件操作

如果上述方法不生效,可以通过控件树的层级定位到目标ListItem,调用click()或select()方法:

# 定位并选择'Notch'选项
dlg.child_window(title="HPF", control_type="Group").child_window(title="Notch", control_type="ListItem").click()

# 或者使用select方法(部分控件支持)
dlg.child_window(title="HPF", control_type="Group").child_window(title="Notch", control_type="ListItem").select()

内容的提问来源于stack exchange,提问作者Parth_Soni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 22:40:39