Как переименовывать экземпляр класса в цикле

Хочу создать 1000 кнопок с помощь цикла, но проблема в том, что не могу переименовать экземпляр в цикле.

Как это осуществить?

UPD: Можно ли это осуществить через словарь или список?

import sys
from PyQt5.Qt import *


class Button(QPushButton):
    def __init__(self):
        QPushButton.__init__(self)
        self.setStyleSheet("QPushButton:hover {background-color: rgb(255,0,0) } \
                                           QPushButton:!hover {background-color: rgb(0,85,0)}; ")
class Window(QWidget):
    def __init__(self, parent = None):
        QWidget.__init__(self,parent)

        self.button = QPushButton(self)
        self.layout = QGridLayout()
        
        for i in range(1000):
            i = Button()
            self.layout.addWidget(i)
            
        self.setLayout(self.layout)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так

import sys
from PyQt5.Qt import *


class Button(QPushButton):
    def __init__(self, num):
        super().__init__()
        
        self.setText(f'{num}')
        self.setMinimumSize(30, 30)
        self.setMaximumSize(30, 30)    
    
        self.setStyleSheet("""
            QPushButton:hover {
                background-color: rgb(255, 0, 0); 
                border-radius: 15px; 
            } 
            QPushButton:!hover {
                background-color: rgb(12, 185, 12);
                border-radius: 15px;                
            }
        """)
        
        
class Window(QWidget):
    def __init__(self):
        super().__init__()

        self.layout = QGridLayout(self)
        column = 30        
        for i in range(600):
            btn = Button(i)
            btn.clicked.connect(lambda ch, btn=btn: print(btn.text()))
            self.layout.addWidget(btn)
            self.layout.addWidget(btn, i // column, i % column)
            

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка