从Win迁移到M时,wxpython控制问题

2024-04-20 05:09:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个在windows上开发的python(2.7)/wxpython程序,我正试图迁移到mac上,但是遇到了一些问题。你知道吗

我遇到的bit由两个面板组成:

面板A由一个树控件组成,其中包含键=值对,并且禁用了用户编辑。你知道吗

面板B由一组不同类型的控件组成(filePicker、textCtrl、valueCtrl、choice、checkbox、comboBox和spinEdit),所有这些控件最初都被禁用

当用户选择一个树节点时,程序会检查键并决定应该使用面板B上的哪个控件来编辑树节点的值。然后面板A使用pubsub将相关信息发送到面板B,pubsub初始化并启用相关控件。面板B上的每个控件都有一个EVT\u KILL\u FOCUS事件,这样当用户离开控件时,使用pubsub将控件值发送回面板a,更新树节点的值,并禁用面板B上的编辑控件。这在窗户上很管用。你知道吗

在mac上,我有以下问题:

  1. 无法禁用filepicker和spinCtrl-如果这些控件中的任何一个不正确地接收到焦点,则可能会将不正确的信息发送回treeCtrl

  2. spinctrl、choice、checkbox和comboctrl似乎没有触发EVT\u KILL\u FOCUS事件,因此不会将任何信息发送回treeCtrl。我通过绑定EVT\u选项在choice控件上修复了这个问题。对其他控件使用非焦点事件也不起作用,会产生不希望的行为。

所以我的问题是:

1:可以在OSX上禁用filepicker和spinCtrl吗?你知道吗

2:有没有办法在mac上使用spinctrl、choice、checkbox和comboctrl控件的kill focus事件?你知道吗

3:如果无法使用填充焦点事件,是否存在在编辑完成后为每个控件触发的备用事件?你知道吗

谢谢 抢劫


Tags: 用户程序信息面板编辑节点mac事件
1条回答
网友
1楼 · 发布于 2024-04-20 05:09:58
  1. 您使用的是哪个版本的wxPython?在当前的构建中,禁用这些小部件对我来说似乎工作得很好。

  2. 出于某种原因,苹果认为永远不要把键盘的焦点放在某些类型的控件上是个好主意,因为很显然,除了鼠标或轨迹板之外,没有人愿意将它们与任何东西一起使用。因此,如果小部件永远得不到焦点,那么它就永远不会失去它,因此也不会有任何EVT\u KILL\u焦点。通过将“完全键盘访问”设置为“所有控件”,可以在“系统首选项”的“键盘面板”中更改此设置。

相关问题 更多 >