在PyQt5中,我们如何获取焦点小部件的名称/对象名称?

时间:2020-05-08 07:49:03

标签: python pyqt pyqt5

在我们的PyQt5程序中,我们多次使用Qline Edits,QcheckBox和QListwidget。

如何知道:

  1. 在我们的程序中,带有小部件名称的小部件是什么?
  2. 如何获取/返回当前具有焦点的小部件的名称(用户分配的名称)

1 个答案:

答案 0 :(得分:1)

按照@Heike的建议,您可以获取对焦点为QApplication.focusWidget的小部件的引用

取决于小部件的创建方式,它们可能没有objectName。如果使用诸如Designer或Creator之类的GUI将小部件拖放到表单上,则将设置对象名称。但是,如果要用代码创建表单,则可能根本没有设置objectName。在这种情况下,您只需确保在代码中设置objectName。您可以看到this question of mine来讨论设置objectName的问题,但为了简单起见,在代码中声明小部件时,可以使用objectName作为关键字参数,例如:

self.MyWidget = QWidget(objectName = MyWidget)

以及以后,如果要获取具有焦点的小部件的名称,请使用

widgetname = self.focusWidget().objectName()

或者您可以使用引用做一些事情:

widget = self.focusWidget()