Я пытаюсь изменить текст кнопки при нажатии с использованием PyQt5.У меня есть заполненная таблица с кнопкой в каждой строке.Изначально кнопка должна отображать «Play», а после нажатия должна отображаться «Pause».
Я заполняю таблицу и нажимаю кнопку, используя следующие методы:
def populate_table(self, total, my_songs):
self.create_rows(total)
btn_press = 0
for row in range(total):
for col in range(4):
self.tableWidget.setItem(row, 0, QtWidgets.QTableWidgetItem(str(my_songs[row].get_title())
.strip('"\'')))
self.tableWidget.setItem(row, 1, QtWidgets.QTableWidgetItem(str(my_songs[row].get_artist())
.strip('"\'')))
self.tableWidget.setItem(row, 2, QtWidgets.QTableWidgetItem(str(my_songs[row].get_album())
.strip('"\'')))
self.tableWidget.setItem(row, 3, QtWidgets.QTableWidgetItem(str(my_songs[row].get_length())
.strip('"\'')))
# self.tableWidget.setItem(row, 4, QtWidgets.QPushButton('Play'))
self.btn_play = QPushButton("Play", self)
self.btn_play.clicked.connect(lambda: self.handle_play_button(self.btn_press))
self.tableWidget.setCellWidget(row, 4, self.btn_play)
def handle_play_button(self, btn_press):
button = QtWidgets.qApp.focusWidget()
# or button = self.sender()
index = self.tableWidget.indexAt(button.pos())
if index.isValid():
self.btn_press += 1
print(index.row(), index.column(), btn_press)
self.btn_play.setText("Pause") #This does not work
Это показывает, какая кнопка была нажата, чтобы я мог продолжить воспроизведение песни.Следующие примеры дают здесь Я пытался использовать setText
, но я не вижу видимых изменений текста.Любые предложения о том, как это можно сделать?Спасибо!
РЕДАКТИРОВАТЬ:
Ошибка от моего имени.Независимо от того, какая кнопка нажата, последняя созданная кнопка меняется на Пауза.Могу ли я использовать index.row()
для индексирования нажатий кнопок для переключения?