如何使用 python 在树视图中选择一个项目?

Posted

技术标签:

【中文标题】如何使用 python 在树视图中选择一个项目?【英文标题】:how to select an item in a treeview using python? 【发布时间】:2013-07-05 11:37:30 【问题描述】:

我想在树形视图中选择一个项目?我可以使用 win32gui.EnumChildWindow 函数将窗口树视图控制为 SysTreeView32,但无法获取树内项目的详细信息。

您能建议任何自动化树视图的方法吗?我发现了 pywinauto、PyCTreeCntrl 或 win32apis 之类的东西,但我不知道如何将这些东西用于 TreeView

【问题讨论】:

【参考方案1】:

这是一个使用 pywinauto 实现树视图自动化的示例

import pywinauto

pwa_app = pywinauto.application.Application()
w_handle = pywinauto.findwindows.find_windows(title=u'PuTTY Configuration', class_name='PuTTYConfigBox')[0]
window = pwa_app.window_(handle=w_handle)
ctrl = window['TreeView']  #SysTreeView32
ctrl.GetItem([u'Connection']).Click()  #Click on a top level element
ctrl.GetItem([u'Connection', u'Data']).Click()  #Click on a sub element

【讨论】:

谢谢 :) 它对我有用,我可以点击元素。但最后的子元素是复选框。所以即使我点击它,复选框也不会被选中。在我的例子中,子元素u'Data' 是一个复选框,即使我点击u'Data',该复选框仍然未被选中。 试试 Check() 而不是 Click() 让我试试..谢谢:)【参考方案2】:

这是我为解决我的问题所做的。对我来说, Check() 不起作用。但是,双击项目框或其父矩形上的项目会。

所以,这就是我所做的: 1. 使用

检索矩形坐标

ctrl_rect = TreeView.GetItem(Path).Rectangle()

    双击 - 使用 单击元素

Window['TreeView'].DoubleClickInput(coords=(ctrl_rect.left, ctrl_rect.top))

我使用了http://sourceforge.net/p/pywinauto/discussion/529287/thread/120750c6/提供的提示

希望对你有帮助

【讨论】:

以上是关于如何使用 python 在树视图中选择一个项目?的主要内容,如果未能解决你的问题,请参考以下文章

python 在树视图中添加字段

在树视图 gtkmm 中为行设置标题

Netbeans - 是不是可以在树(分层)视图而不是平面视图中查看项目源文件夹?

Odoo 14:在树视图中添加部分功能

在 tkinter 的树视图中选择多行并同时获取它们

我想在树视图中显示两个视图连接