如何捕获 wxPropertyGrid 中每次按键的事件

发布于 2024-11-29 00:28:20 字数 404 浏览 1 评论 0原文

在 wxPython 中,我试图更新现有的 UI 以使用 wxPropertyGrid 而不是单个 UI 元素的数组。目前,底层对象模型已更新,并且每次按键后都会应用验证,我想对 PropertyGrid 执行相同的操作。

我遇到的问题是,似乎不存在像 wx.EVT_TEXT 这样的每次击键都会触发的 wxPropertyGridEvent,最接近的是 EVT_PG_CHANGED,但只有当您在网格中的行之间进行更改时才会触发。我可以通过将 wx.EVT_TEXT 绑定到 PropertyGrid 在一定程度上解决这个问题,但随后我无法使用 event.GetProperty() 来访问属性数据,因为该事件不是 PropertyGridEvent。

所以问题是我是否错过了一些东西以及是否有我可以使用的现有事件?如果没有关于我如何解决这个问题的任何想法?

In wxPython I'm trying to update an existing UI to use wxPropertyGrid instead of an array of individual UI elements. Currently the underlying object model is updated and validation is applied after each key press and I want to do the same with the PropertyGrid.

The problem I'm having is that there doesn't seem to exist a wxPropertyGridEvent which triggers on every key stroke like wx.EVT_TEXT, the closest is EVT_PG_CHANGED but that only triggers when you change between rows in the grid. I can get round this to an extent by binding wx.EVT_TEXT to the PropertyGrid but then I'm unable to use event.GetProperty() in order to access the property data as the event is not a PropertyGridEvent.

So the question is have I missed something and is there an existing event which I can use? Failing that any ideas on how I get around this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如梦 2024-12-06 00:28:20

事实证明,您可以通过直接绑定到文本 ctrl 来捕获 EVT_CHAR 事件。由于文本 ctrl 仅在选择属性时创建,但是在设置网格时不能执行此操作,而是必须在 EVT_PG_SELECTED 事件之后绑定它。

Turns out you can capture EVT_CHAR events by binding directly to the text ctrl. As the text ctrl is only created when the property is selected however you can't do this when setting up the grid, rather you have to bind it following a EVT_PG_SELECTED event.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文