В PyQt5, как мы получаем имя / имя объекта виджетов фокуса? - PullRequest
0 голосов
/ 08 мая 2020

В нашей программе PyQt5 мы несколько раз используем Qline Edits, QcheckBox, QListwidget.

Как узнать:

  1. Какие виджеты используются в нашей программе с именами виджетов?
  2. Как получить / вернуть имя виджета (назначенное пользователем имя), на котором в данный момент находится фокус

1 Ответ

1 голос
/ 09 мая 2020

Как предложил @Heike, вы можете получить ссылку на виджет, который имеет фокус, с помощью QApplication.focusWidget

В зависимости от того, как созданы ваши виджеты, они могут не иметь objectName. Если вы используете GUI Designer или Creator для размещения виджетов в форме, тогда у вас будет установлено имя объекта. Однако, если вы создаете форму в коде, у вас может вообще не быть задано objectName. В этом случае вы можете просто убедиться, что установили objectName в своем коде. Вы можете увидеть этот мой вопрос для обсуждения установки objectName, но чтобы перейти к делу, вы можете использовать objectName в качестве аргумента ключевого слова, когда вы объявляете свой виджет в коде, например:

self.MyWidget = QWidget(objectName = MyWidget)

и позже, если вы хотите получить имя виджета, у которого есть фокус, вы должны использовать

widgetname = self.focusWidget().objectName()

или вы можете просто сделать что-то со ссылкой:

widget = self.focusWidget()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...