class UserButtonMenu(QPushButton): def __init__(self, image_width, image_height, parent=None): super(UserButtonMenu, self).__init__(parent) self.image_width = image_width self.image_height = image_height self.label = QLabel(self) self.label.setScaledContents(True) self.label.setSizePolicy( QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)) self.imageLabel = QLabel(self) self.imageLabel.setScaledContents(True) self.imageLabel.setSizePolicy( QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)) self.setSizePolicy( QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)) self.userMenu = QMenu('user accounts menu') # TODO Remove magic hbox = QHBoxLayout() hbox.addWidget(self.imageLabel) hbox.addWidget(self.label) self.setLayout(hbox) self.setMenu(self.userMenu) def addAction(self, action): self.userMenu.addAction(action) def setPixmap(self, pixmap): self.imageLabel.setPixmap(pixmap) self.imageLabel.setFixedSize( self.image_width, self.image_height) def setText(self, text): self.label.setText(text) self.adjustSize() def adjustSize(self): # TODO - Remove magic numbers label_size = self.label.sizeHint() image_size = self.imageLabel.sizeHint() self.setFixedSize(label_size.width() + 70, 48) self.userMenu.setFixedWidth(label_size.width() + 70)
class UserButtonMenu(QPushButton): def __init__(self, image_width, image_height, parent=None): super(UserButtonMenu, self).__init__(parent) self.image_width = image_width self.image_height = image_height self.label = QLabel(self) self.label.setScaledContents(True) self.label.setSizePolicy( QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)) self.imageLabel = QLabel(self) self.imageLabel.setScaledContents(True) self.imageLabel.setSizePolicy( QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)) self.setSizePolicy( QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)) self.userMenu = QMenu('user accounts menu') # TODO Remove magic hbox = QHBoxLayout() hbox.addWidget(self.imageLabel) hbox.addWidget(self.label) self.setLayout(hbox) self.setMenu(self.userMenu) def addAction(self, action): self.userMenu.addAction(action) def setPixmap(self, pixmap): self.imageLabel.setPixmap(pixmap) self.imageLabel.setFixedSize(self.image_width, self.image_height) def setText(self, text): self.label.setText(text) self.adjustSize() def adjustSize(self): # TODO - Remove magic numbers label_size = self.label.sizeHint() image_size = self.imageLabel.sizeHint() self.setFixedSize(label_size.width() + 70, 48) self.userMenu.setFixedWidth(label_size.width() + 70)