Esempio n. 1
0
class WebChat(QWidget):
    focused = pyqtSignal()

    def __init__(self, vmId, type_, name, parent=None):
        QWidget.__init__(self, parent)
        self._vmId = vmId
        self._type = type_
        self._name = name
        self.loading = Loading(self)
        self.loading.start()
        mainLayout = QHBoxLayout()
        mainLayout.setContentsMargins(8, 8, 8, 8)
        self.setLayout(mainLayout)
        self.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        self.setFixedSize(QSize(336, 496))

    def createVncViewPort(self, params):
        url = 'vnc://:' + params['password'] + '@127.0.0.1:' + str(
            params['port'])
        self.viewPort = ViewPort(url)
        self.viewPort.start()
        self.viewPort.mouseLeftButtonClicked.connect(self.focused)
        self.layout().addWidget(self.viewPort)

    def mousePressEvent(self, e):
        self.focused.emit()
        return QWidget.mousePressEvent(self, e)

    def resizeEvent(self, e):
        size_ = self.loading.size()
        self.loading.move((self.width() - size_.width()) / 2,
                          self.height() * 0.4 - size_.height() / 2)

    def name(self):
        return self._name

    def vmId(self):
        return self._vmId

    def type(self):
        return self._type

    def paintEvent(self, e):
        opt = QStyleOption()
        opt.initFrom(self)
        p = QPainter(self)
        self.style().drawPrimitive(QStyle.PE_Widget, opt, p, self)

    def information(self):
        info = {'name': '电子科大', 'accounts': ('496724812', '872155134')}
        return info

    def sizeHint(self):
        return QSize(336, 496)