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)