def sizeHint(self): """ Reimplemented from `QPushButton.sizeHint`. Returns ------- sh : QSize """ sh = super().sizeHint() option = QStyleOptionButton() self.initStyleOption(option) style = self.style() fm = option.fontMetrics if option.iconSize.isValid(): icsize = option.iconSize icsize.setWidth(icsize.width() + 4) else: icsize = QSize() for text in self.__textChoiceList: option.text = text size = fm.size(Qt.TextShowMnemonic, text) if not icsize.isNull(): size.setWidth(size.width() + icsize.width()) size.setHeight(max(size.height(), icsize.height())) sh = sh.expandedTo( style.sizeFromContents(QStyle.CT_PushButton, option, size, self)) return sh