Как узнать имя переменной в которой храниться кнопка при нажатии которой вызвался этот метод?
При нажатии кнопки создаётся новый (точно такой же как и прошлый) groupbox
def new(self):
self.groupBox_2 = QGroupBox(self.scrollAreaWidgetContents)
self.groupBox_2.setMinimumSize(QSize(411, 251))
self.groupBox_2.setMaximumSize(QSize(411, 251))
self.groupBox_2.setCheckable(False)
self.groupBox_2.setStyleSheet(u"border: 2px solid #FDD2BF;\n"
"border-radius: 10;")
В этом groupbox'е находится кнопка deleten
self.deleten_2 = QPushButton(self.groupBox_2)
self.deleten_2.setGeometry(QRect(378, 10, 24, 24))
font = QFont()
font.setPointSize(10)
self.deleten_2.setFont(font)
self.deleten_2.setText("X")
self.deleten_2.setCursor(QtGui.QCursor(Qt.ArrowCursor))
self.deleten_2.setStyleSheet(
"QPushButton {"
" background-color: None;"
" border: 2px solid white;"
" border-radius: 7;"
" color: white;"
"}"
""
"QPushButton:hover {"
" background-color: #FF381E;"
" border-color: #FF381E;"
" color: white;"
"}"
""
"")
self.deleten_2.clicked.connect(self.delete)
Привязал к кнопке (ну, а так как они создаются каждый раз при нажатии кнопки, то к
*кнопкам) действие при нажатии на неё
self.deleten_2.clicked.connect(self.delete)
Каждый раз при нажатии кнопки создаётся один и тот же groupbox, соответственно и кнопка deleten (это имя переменной в которой она находится) остаётся неизменной. То есть мне нужно, чтобы когда будет нажата одна из этих кнопок deleten мне нужно узнать название прееменной в которой находится кнопка, которая активировала это действие. Каким способом это можно сделать?
Ответы (1 шт):
Название переменной узнать будет тяжело, может, даже невозможно.
Намного проще задавать каждой кнопке атрибут .objectName, а уже потом обрабатывать его, вместо названия переменной.
...
self.deleten_2.setObjectName('deleted_2')
...
А потом - получать .objectName:
...
self.sender().objectName
...