python - 在 PyQt5 中,我们如何获取焦点小部件的名称/对象名称?
问题描述
在我们的 PyQt5 程序中,我们多次使用 Qline Edits、QcheckBox、QListwidget。
如何知道:
- 我们的程序中使用了哪些带有 Widget 名称的小部件?
- 如何获取/返回当前具有焦点的小部件的名称(用户分配的名称)
解决方案
正如@Heike 建议的那样,您可以通过QApplication.focusWidget获得对具有焦点的小部件的引用
根据小部件的创建方式,它们可能没有 objectName。如果您使用像 Designer 或 Creator 这样的 GUI 将小部件拖放到表单上,那么您将设置对象名称。但是,如果您在代码中创建表单,则可能根本没有设置 objectName。在这种情况下,您只需确保在代码中设置 objectName。您可以看到我的这个问题以讨论设置 objectName 但切入正题,您可以objectName
在代码中声明小部件时将其用作关键字参数,例如:
self.MyWidget = QWidget(objectName = MyWidget)
稍后,如果您想获取具有焦点的小部件的名称,您将使用
widgetname = self.focusWidget().objectName()
或者你可以对参考做一些事情:
widget = self.focusWidget()
推荐阅读
- docker - 为什么我的 kcov 命令的 outdir 总是空的?
- php - php检测图像方向“没有exif”?
- ios - 旋转 Mapbox 相机
- javascript - 由于所有代码都在客户端呈现,用户能否绕过对 vue.js 应用程序中某些路由或页面的限制?
- python - 在子进程中打印指定的输出
- android - 使用 Kotlin 函数特性如何使这段代码变得更好?
- google-apps-script - 使用 Google 脚本四舍五入到 $XX.99
- python - 在后台线程中训练不适用于 Atari 游戏
- c++ - C++ - 错误 - 没有运算符“[]”与这些操作数匹配
- tomcat - xampp 检测到问题,tomcat 未运行