Хорошо, вопрос был довольно глупым, и я испортил некоторые базовые вещи c python, но теперь он решен. Надеюсь, это кому-нибудь поможет.
Во-первых, self.text
не является полем класса Form
, потому что такого поля нет, как в примере. Вместо этого для этого мне нужно как-то передать объект кнопки функции и получить к ней доступ, например button.text()
и button.setText()
.
Поскольку все мои кнопки хранятся в списке buttons
, с помощью которого я могу легко перебрать, я решил создать 2 функции, которые возвращают функции:
for b in buttons:
# I skipped style-related code
b.clicked.connect(self.get_left_click(b))
b.customContextMenuRequested.connect(self.get_right_click(b))
...
def get_left_click(self, button):
def left_click(self):
button.setText(str(int(button.text())+1))
return left_click
def get_right_click(self, button):
def right_click(self):
if int(button.text()) > 0: button.setText(str(int(button.text())-1))
return right_click
Кроме того, QPushButton.setText()
не поддерживает целые числа, поэтому Мне пришлось конвертировать его с str(...)
PS Я был бы признателен за лучшее решение