Example #1
0
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)
Example #2
0
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)