Beispiel #1
0
class TopTab2(Widget):

    key = 'TopTab2'

    def __init__(self, buttonManager, parent=None):
        super(TopTab2, self).__init__(parent)

        self.buttonManager = buttonManager
        self.parent = parent
        self.layout = GridLayout()
        self.buildUI()
        self.setLayout(self.layout)

        self.signals.regisLayout.emit(self)

    def buildUI(self):
        self.query = usql.QuerryDB()
        try:
            self.username, token, cookie, remember = self.query.query_table(
                'curUser')
        except (ValueError, IndexError):
            self.username = '******'

        self.avatar = QLabel()
        self.avatar.setPixmap(QPixmap(get_avatar_image(self.username)))
        self.avatar.setScaledContents(True)
        self.avatar.setFixedSize(100, 100)
        self.avatarGrp = GroupBox(self.username, [self.avatar], "ImageView")

        self.avatarBtn = self.buttonManager.userButtonGroupBox(self.parent)
        self.settingGrp = GroupBox("Setting", self.avatarBtn, "BtnGrid")

        self.messGrp, sec3Grid = GroupGrid("Messenger")

        self.layout.addWidget(self.avatarGrp, 0, 0, 3, 3)
        self.layout.addWidget(self.settingGrp, 3, 0, 3, 3)
        self.layout.addWidget(self.messGrp, 0, 3, 6, 6)

    @pyqtSlot(bool)
    def update_avatar(self, param):
        print("receive signal to update avatar: {0}".format(param))
        if param:
            self.username, token, cookie, remember = self.query.query_table(
                'curUser')
            self.avatar = QPixmap(get_avatar_image(self.username))
            self.avatarScene = QGraphicsScene()
            self.avatarScene.addPixmap(self.avatar)
            self.avatarScene.update()