Potrzebuje zrobić przycisk, który będzie przybierać kształt kwadratu. Wymiary tego kwadratu nie mogą być zaszyte sztywno, one mają dopasowywać w czasie działania programu na podstawie layoutu. Na razie mam taki kod, właściwie on działa, ale nie spełnia moich oczekiwań. Gdy okno jest w spoczynku to wszystko jest ok, ale w czasie rozciągania okna pojawia się problem z renderowaniem.

user image

from PySide.QtGui import QPushButton

class SquareButton(QPushButton):

    def __init__(self):
        QPushButton.__init__(self)

        
    def resizeEvent(self, event):
        side_size = min(self.width(), self.height())
        self.resize(side_size, side_size)
        QPushButton.resizeEvent(self, event)

        
if __name__ == '__main__':
    from sys import argv
    from PySide.QtGui import QApplication

    app = QApplication(argv)

    button = SquareButton()
    button.show()

    app.exec_()

Jak należy poprawić poniższy kod?


Kod nie musi być w języku Python, zadowolę się też rozwiązaniem w języku C++ i Java.