我正在开发一个主要在 MacOS 上开发的 Qt 应用程序,但随后也在 Linux 上构建和测试。
我们在主窗口类中定义一个 keyPressEvent() 方法来响应某些键盘事件。其中,我们响应 Qt::Key_Left、Qt::Key_Right 和 Qt::Key_Space。这在 MacOS 上效果很好。然而,在 Linux 上,我们永远不会收到这些事件。
进行一些谷歌搜索(并通过我们的应用程序在 Linux 上的行为进行确认),似乎其原因是 Qt 使用这些键在应用程序的 GUI 中对按钮小部件进行键盘导航。如果我在 Linux 上按箭头键,我会循环浏览所有活动按钮小部件,依次选择每个按钮小部件。如果我单击空格键,则按下当前选定的按钮。
到目前为止,我通过谷歌搜索所能找到的只是关于如何对特定按钮进行子类化或应用过滤器的建议,以避免通过让按钮忽略事件并将其传递来避免这种行为。但我不想对我放入 GUI 中的每个按钮小部件都执行此操作。那太蹩脚了。
有没有办法全局禁用此行为并允许我的应用程序代码实际获取所有箭头键和空格键事件?
我用谷歌搜索和谷歌搜索,但在Python中管理大型企业代码库的讨论或最佳实践几乎没有发现任何问题.在这里,我只是征求任何和所有指向这些信息的指针.这里有一些背景知识和一些我想回答的问题.
我们是长期的Java开发人员,他们使用完善的Java最佳实践以及Maven,Ant和Sonotype Nexus repo解决了下面提到的类似问题.
我这里只谈内部软件.我们不打算分发任何基于Python的东西.我们有多个使用Python的开发组,每个开发组都使用纯Python开发可共享的实用程序代码库,最终的Web应用程序和独立的工具.每个组都有自己的Github源代码库.
我们如何在组内和组内管理可共享代码?我们是否创建了鸡蛋(或类似的东西)并将它们分发并安装到Python系统中?如果是这样,我们会将它们存储在我们的Nexus repo中,就像我们的Java jar一样,或者如果内部包分发,是否有更多特定于Python的方法?或者,我们只是共享原始代码,从多个Github存储库中检出来源吗?
如果我们共享原始代码,那么当我们将来自多个存储库的代码汇集在一起时,我们如何正确管理Python搜索路径?
当我们希望所有包都存在于com.ourcompany基本命名空间中时,我们如何管理包命名空间?当您将具有重叠命名空间的源代码树汇集在一起时,似乎python并不太高兴.
我们如何管理第三方软件包版本控制?我从未见过easy_install或pip传递了版本号.我们如何锁定第三方软件包版本?
是否存在有助于Python代码评审,CI,回归测试等的工具?
我们是Python代码的相对新手,因此其中一些问题可能有相当明显的答案.尽管如此,我发现令人惊讶的是我无法找到有关管理更大的Python代码库的更多信息.
我们会遇到什么问题,我还没有想过询问,或者还不知道甚至不知道要问什么?
任何有价值的指针将不胜感激.