コード例 #1
0
    def load_api(self):
        for api in self.father.all_api:
            pix = QPixmap()
            if api == '随机':
                pix.loadFromData(
                    QByteArray.fromBase64(
                        b'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'
                    ))
            else:
                pix.loadFromData(
                    QByteArray.fromBase64(eval('self.father.%s.b64_data' %
                                               api)))
            ico = QIcon(pix)
            ico.actualSize(QSize(22, 22))
            self.api_choose.addItem(ico, api)
        self.api_choose.setCurrentText(self.father.config['api'])

        if self.father.config['api'] != '随机':
            self.father.api = eval('self.father.%s' %
                                   self.father.config['api'])
            self.category_choose.addItems(self.father.api.cate)
            self.category_choose.setCurrentText(self.father.config['category'])
            if self.father.config['play_what'] != '网络':
                self.api_choose.setEnabled(False)
                self.category_choose.setEnabled(False)
        else:
            self.category_choose.addItem('随机')
            self.category_choose.setCurrentText('随机')
コード例 #2
0
ファイル: async_core.py プロジェクト: mom1/messager
 def update(self, proto, msg=None, **kwargs):
     code = getattr(msg, settings.RESPONSE, '')
     if code == 202:
         lst = []
         for username, ava in getattr(msg, settings.LIST_INFO, []):
             user = User.by_name(username=username)
             if user:
                 if ava:
                     user.avatar = QByteArray.fromBase64(
                         base64.b64decode(ava))
             else:
                 user = User(username=username,
                             password='******',
                             avatar=QByteArray.fromBase64(
                                 base64.b64decode(ava)) if ava else None)
             lst.append(user)
         with db_lock:
             User.save_all(lst)
         proto.notify(f'done_{self.name}')
     else:
         proto.write(
             Message(
                 **{
                     settings.ACTION: settings.USERS_REQUEST,
                     settings.USER: settings.USER_NAME,
                 }))
         proto.notify(f'send_{self.name}')
コード例 #3
0
 def saveImage(self, width, height, dataUrl):
     image = None
     if dataUrl:
         ba = QByteArray.fromBase64(dataUrl[22:].encode("ascii"))
         image = QImage()
         image.loadFromData(ba)
     self.imageReceived.emit(width, height, image)
コード例 #4
0
ファイル: icons.py プロジェクト: stefandragomir/scrib
def SCR_As_ByteArray(base64_data):

    _barray = QByteArray()

    _barray_data = _barray.fromBase64(basbase64_datae64String.encode("utf-8"))

    return _barray_data
コード例 #5
0
ファイル: mapreader.py プロジェクト: theall/Python-Tiled
    def __readImage(self):
        atts = self.xml.attributes()
        source = atts.value("source")
        format = atts.value("format")
        if len(source)==0:
            while (self.xml.readNextStartElement()):
                if (self.xml.name() == "data"):
                    atts = self.xml.attributes()
                    encoding = atts.value("encoding")
                    data = self.xml.readElementText().toLatin1()
                    if (encoding == "base64"):
                        data = QByteArray.fromBase64(data)

                    self.xml.skipCurrentElement()
                    return QImage.fromData(data, format.toLatin1())
                else:
                    self.__readUnknownElement()

        else:
            self.xml.skipCurrentElement()
            source = self.p.resolveReference(source, self.mPath)
            image = self.p.readExternalImage(source)
            if (image.isNull()):
                self.xml.raiseError(self.tr("Error loading image:\n'%s'"%source))
            return image

        return QImage()
コード例 #6
0
ファイル: mainprodutos.py プロジェクト: Wiras77/sitema-pdv
    def SelectProduto(self, valor):
        id = valor
        self.FormProdutos()
        self.tx_idProduto.setText(str(id))
        busca = CrudProduto()
        busca.id = id
        busca.selectProdutoId()
        self.tx_DescricaoProduto.setText(busca.produto)
        if busca.imagem:
            pixmap = QPixmap()
            pixmap.loadFromData(
                QByteArray.fromBase64(busca.imagem))
            self.lb_FotoProduto.setPixmap(pixmap.scaledToWidth(
                150, Qt.TransformationMode(Qt.FastTransformation)))
            # self.lb_FotoProduto.setScaledContents(True)
            self.bt_AddImagem.setHidden(True)
            self.bt_DelImagem.setVisible(True)

        self.cb_CategoriaProduto.setCurrentIndex(
            self.cb_CategoriaProduto.findData(busca.categoria))
        self.cb_MarcaProduto.setCurrentIndex(
            self.cb_MarcaProduto.findData(busca.marca))
        self.tx_EstoqueMinimoProduto.setText(str(busca.estoqueMinimo))
        self.tx_EstoqueMaximoProduto.setText(str(busca.estoqueMaximo))
        self.tx_ObsProduto.setText(busca.obsProduto)
        self.tx_ValorCompraProduto.setText(str(busca.valorCompra))
        self.tx_ValorUnitarioProduto.setText(str(busca.valorUnitario))
        self.tx_ValorAtacadoProduto.setText(str(busca.valorAtacado))
        self.tx_MinimoAtacado.setText(str(busca.qtdeAtacado))
コード例 #7
0
ファイル: mapreader.py プロジェクト: theall/Python-Tiled
    def __readImage(self):
        atts = self.xml.attributes()
        source = atts.value("source")
        format = atts.value("format")
        if len(source) == 0:
            while (self.xml.readNextStartElement()):
                if (self.xml.name() == "data"):
                    atts = self.xml.attributes()
                    encoding = atts.value("encoding")
                    data = self.xml.readElementText().toLatin1()
                    if (encoding == "base64"):
                        data = QByteArray.fromBase64(data)

                    self.xml.skipCurrentElement()
                    return QImage.fromData(data, format.toLatin1())
                else:
                    self.__readUnknownElement()

        else:
            self.xml.skipCurrentElement()
            source = self.p.resolveReference(source, self.mPath)
            image = self.p.readExternalImage(source)
            if (image.isNull()):
                self.xml.raiseError(
                    self.tr("Error loading image:\n'%s'" % source))
            return image

        return QImage()
コード例 #8
0
ファイル: q3dview.py プロジェクト: cossatot/Qgis2threejs
  def saveImage(self, width, height, dataUrl="", tx=0, ty=0, intermediate=False):
    image = None
    if dataUrl:
      ba = QByteArray.fromBase64(dataUrl[22:].encode("ascii"))
      if tx or ty:
        image = QImage()
        image.loadFromData(ba)

    else:
      image = QImage(width, height, QImage.Format_ARGB32_Premultiplied)
      painter = QPainter(image)
      self._page.mainFrame().render(painter)
      painter.end()

    if tx or ty:
      img = QImage(width - tx, height - ty, QImage.Format_ARGB32_Premultiplied)
      painter = QPainter(img)
      painter.drawImage(tx, ty, image)
      painter.end()
      image = img

    # image to byte array
    if image:
      ba = QByteArray()
      buf = QBuffer(ba)
      buf.open(QIODevice.WriteOnly)
      image.save(buf, "PNG")

    dataType = q3dconst.BIN_INTERMEDIATE_IMAGE if intermediate else q3dconst.BIN_SCENE_IMAGE
    self.iface.respond(ba.data(), {"dataType": dataType, "renderId": self.renderId})    # q3dconst.FORMAT_BINARY
コード例 #9
0
    def __init__(self, title):
        super(TabbedWindow, self).__init__()

        self.setMinimumSize(440, 540)

        self.create_status_bar()
        self.create_central_widget()
        self.create_menu()

        self.shown = False
        self.qnam = QNetworkAccessManager()
        self.http_reply = None
        self.in_manual_update_check = False

        self.faq_dialog = None
        self.about_dialog = None

        geometry = get_config_value('window_geometry')
        if geometry is not None:
            qt_geometry = QByteArray.fromBase64(geometry.encode('utf8'))
            self.restoreGeometry(qt_geometry)

        self.setWindowTitle(title)

        if not config_true(
                get_config_value('allow_multiple_instances', 'False')):
            self.init_named_pipe()
コード例 #10
0
ファイル: gui.py プロジェクト: sputney13/bme590final
 def display_images(self):
     global global_user_email
     global global_process_type
     global global_selected_name
     global global_process_image
     image_strip = global_selected_name.split('/')[-1]
     image_name = image_strip.split('.')[0]
     processed_images = client.get_processed_image(global_user_email,
                                                   image_name,
                                                   global_process_type)
     print(processed_images.keys())
     label = QLabel(self)
     s = processed_images[image_name]
     global_process_image = s
     data = QByteArray.fromBase64(s.encode())
     image_type = image_strip.split('.')[1]
     upload_sizes = client.get_upload_sizes(global_user_email)
     upload_size = upload_sizes[image_name]
     size_string = "Upload Size: " + str(upload_size)
     upload_times = client.get_upload_time(global_user_email)
     upload_time = upload_times[image_name]
     print(upload_time)
     time_string = "Upload Time: " + upload_time
     pixmap = QPixmap()
     if pixmap.loadFromData(data, image_type):
         pixmap2 = pixmap.scaledToWidth(250)
         label.setPixmap(pixmap2)
         label.setGeometry(460, 100, 640, 250)
     label1 = QLabel(size_string, self)
     label1.move(455, 30)
     label1.setMinimumSize(220, 40)
     label2 = QLabel(time_string, self)
     label2.move(410, 50)
     label2.setMinimumSize(290, 40)
コード例 #11
0
ファイル: mainprodutos.py プロジェクト: imbi7py/PDS2
    def DetalhamentoProduto(self, valor):
        id = valor
        self.FormProdutos()
        self.tx_idProduto.setText(str(id))

        busca = CrudProduto()
        busca.id = id
        busca.DetalhamentoProdutoId()

        if hasattr(busca, 'imagem') and busca.imagem:
            pixmap = QPixmap()
            pixmap.loadFromData(QByteArray.fromBase64(busca.imagem))
            self.lb_FotoProduto.setPixmap(
                pixmap.scaledToWidth(
                    200, Qt.TransformationMode(Qt.FastTransformation)))
            self.bt_AdicionarImagem.setHidden(True)
            self.bt_DeletarImagem.setVisible(True)
        self.tx_NomeProduto.setText(busca.produto)
        self.tx_Descricao.setText(busca.descricao)
        self.cb_Categoria.setCurrentIndex(
            self.cb_Categoria.findData(busca.categoria))
        self.cb_Marca.setCurrentIndex(self.cb_Marca.findData(busca.marca))
        self.tx_QtdMinimoEstoque.setText(str(busca.qtdMinimoEstoque))
        self.tx_QtdEstoque.setText(str(busca.qtdEstoque))
        self.tx_ValorUnitario.setText(str(busca.valorUnitario))
        self.tx_TotalEstoque.setText(str(busca.totalEstoque))
コード例 #12
0
ファイル: core.py プロジェクト: mom1/messager
 def update_user_list(self):
     """Функция запроса списка известных пользователей."""
     logger.debug(
         f'Запрос списка известных пользователей {settings.USER_NAME}')
     self.send_message(
         Message(
             **{
                 settings.ACTION: settings.USERS_REQUEST,
                 settings.USER: settings.USER_NAME,
             }))
     response = self.read_data()
     if response and response.response == 202:
         with database_lock:
             lst = []
             for username, ava in getattr(response, settings.LIST_INFO, []):
                 user = User.by_name(username=username)
                 if user:
                     if ava:
                         user.avatar = QByteArray.fromBase64(
                             base64.b64decode(ava))
                 else:
                     user = User(username=username,
                                 password='******',
                                 avatar=ava)
                 lst.append(user)
             User.save_all(lst)
     else:
         logger.error('Ошибка запроса списка известных пользователей.')
コード例 #13
0
ファイル: window.py プロジェクト: Daguhh/PyQtMenu
def iconFromBase64(base64):
    """Read menu icon images from base64 string"""

    pixmap = QPixmap()
    pixmap.loadFromData(QByteArray.fromBase64(base64))
    icon = QIcon(pixmap)
    return icon
コード例 #14
0
    def SelectEmpresa(self):
        busca = CrudEmpresa()
        busca.idEmpresa = self.tx_idEmpresa.text()
        busca.SelectEmpresaId()
        self.tx_idEmpresa.setText(str(busca.id))
        self.tx_NomeFantasia.setText(busca.nomeFantasia)
        self.tx_RazaoSocial.setText(busca.razaoSocial)
        self.tx_Cnpj.setText(str(busca.cnpj))
        self.tx_IE.setText(str(busca.inscEstadual))
        self.tx_TelefoneEmpresa.setText(
            self.formatoNumTelefone((busca.telefone)))
        self.tx_SiteEmpresa.setText(busca.site)
        self.tx_EmailEmpresa.setText(busca.email)
        self.tx_ObsEmpresa.setText(busca.obs)
        self.tx_CepEmpresa.setText(busca.cep)
        self.tx_Endereco.setText(busca.endereco)
        self.tx_NumEmpresa.setText(str(busca.numero))
        self.tx_BairroEmpresa.setText(busca.bairro)
        self.tx_CidadeEmpresa.setText(busca.cidade)
        self.tx_EstadoEmpresa.setText(busca.estado)
        self.tx_Titulo.setText(busca.titulo)
        self.tx_SubTitulo.setText(busca.subtitulo)
        if busca.logo:
            self.bt_AddLogo.setHidden(True)
            self.bt_DelLogo.setVisible(True)
            # print busca.logo
            pixmap = QPixmap()
            pixmap.loadFromData(QByteArray.fromBase64(
                busca.logo))
            self.lb_LogoEmpresa.setPixmap(pixmap.scaledToWidth(
                300, Qt.TransformationMode(Qt.FastTransformation)))

        pass
コード例 #15
0
ファイル: _misc.py プロジェクト: CINPLA/phylib
def _decode_qbytearray(data_b64):
    encoded = base64.b64decode(data_b64)
    try:
        from PyQt5.QtCore import QByteArray
        out = QByteArray.fromBase64(encoded)
    except ImportError:  # pragma: no cover
        pass
    return out
コード例 #16
0
ファイル: icons.py プロジェクト: stefandragomir/scrib
def SCR_As_Pixmap(base64_data):

    _barray = QByteArray()

    _barray_data = _barray.fromBase64(base64_data.encode("utf-8"))

    _pixmap = QPixmap ()

    _pixmap.loadFromData(_barray_data, "PNG")
    
    return _pixmap
コード例 #17
0
 def __init__(self, parent):
     super(CColorStraw, self).__init__(parent)
     QFontDatabase.addApplicationFontFromData(QByteArray.fromBase64(FONT))
     font = self.font() or QFont()
     font.setFamily('iconfont')
     self.setFont(font)
     self.setToolTip('Нарисуйте цвет экрана')
     self._scaleWindow = ScaleWindow()
     # Не забудьте сначала показать его, а затем спрятать.
     self._scaleWindow.show()
     self._scaleWindow.hide()
コード例 #18
0
 def __init__(self, parent):
     super(CColorStraw, self).__init__(parent)
     QFontDatabase.addApplicationFontFromData(QByteArray.fromBase64(FONT))
     font = self.font() or QFont()
     font.setFamily('iconfont')
     self.setFont(font)
     self.setText('')
     self.setToolTip('吸取屏幕颜色')
     self._scaleWindow = ScaleWindow()
     # 一定要先显示再隐藏,否则QDialog情况下第一次会卡死
     self._scaleWindow.show()
     self._scaleWindow.hide()
コード例 #19
0
ファイル: myexplorer.py プロジェクト: tb4jc/MyExplorer
 def __init__(self, *args):
     super(MEMainWindowImpl, self).__init__(*args)
     self.config = MEIniFile(MYEXPLORER_INI_FILE)
     self.setupUi(self)
     self.src_dirs = QStringListModel(
         self.config.get_section_values(MEIniFile.SRC_DIRS))
     self.cbSrcDir.setModel(self.src_dirs)
     self.dst_dirs = QStringListModel(
         self.config.get_section_values(MEIniFile.DST_DIRS))
     self.cbDstDir.setModel(self.dst_dirs)
     tmp_filters = self.config.get_section_values(MEIniFile.FILTERS)
     if len(tmp_filters) == 0:
         tmp_filters = MEMainWindowImpl.BASE_EXT_FILTERS
     self.filters = QStringListModel(tmp_filters)
     self.cbFilterList.setModel(self.filters)
     params = self.config.get_full_section(MEIniFile.PARAMS)
     if type(params) is dict:
         if 'FilterOrdering' in params:
             self.cbFilterOrdering.setChecked(
                 params.get('FilterOrdering') == "True")
         else:
             self.cbFilterOrdering.checked = False
         if 'YearOrdering' in params:
             self.cbYearOrdering.setChecked(
                 params.get('YearOrdering') == "True")
         else:
             self.cbYearOrdering.checked = False
     layout = self.config.get_full_section(MEIniFile.LAYOUT)
     if type(layout) is dict:
         if 'geometry' in layout:
             byte_array = bytes(layout['geometry'], 'utf-8')
             self.restoreGeometry(QByteArray.fromBase64(byte_array))
         elif 'PosX' in layout:
             self.move(layout['PosX'], layout['PosY'])
             self.resize(layout['Width'], layout['Height'])
         if 'state' in layout:
             byte_array = bytes(layout['state'], 'utf-8')
             self.restoreState(QByteArray.fromBase64(byte_array))
     pass
コード例 #20
0
    def load_ramps(self):
        path = os.path.join(os.path.dirname(os.path.dirname(__file__)),
                            "resources", "mosaics_caps.json")
        with open(path) as f:
            self.ramps = json.load(f)

        self.ramp_pixmaps = {}
        for k, v in self.ramps["colors"].items():
            base64 = v["icon"][len("data:image/png;base64,"):].encode()
            byte_array = QByteArray.fromBase64(base64)
            image = QImage.fromData(byte_array, "PNG")
            scaled = image.scaled(100, 20)
            pixmap = QPixmap.fromImage(scaled)
            self.ramp_pixmaps[k] = pixmap
コード例 #21
0
ファイル: icons.py プロジェクト: stefandragomir/scrib
def SCR_As_Icon(base64_data):

    _barray = QByteArray()

    _barray_data = _barray.fromBase64(base64_data.encode("utf-8"))

    _pixmap = QPixmap ()

    _pixmap.loadFromData(_barray_data, "PNG")

    _icon  = QIcon()

    _icon.addPixmap(_pixmap)
    
    return _icon
コード例 #22
0
    def requestImage(self, image_id: int, size: int):
        """Переопределнный метод QQuickImageProvider для получения картинки.

        Осуществляется поиск id в хранилище и дальнейше преобразование картинки в байты для загрузки в окно QML.
        :param image_id: индекс картинки в списке
        :param size: размер
        :return:
        """
        for image in self._images:
            if image["id"] == image_id:
                image_base64_bytes = QByteArray(image["image"].encode('utf-8'))
                data = QByteArray.fromBase64(image_base64_bytes)
                q_image = QImage()
                q_image.loadFromData(data)
                return q_image, size
コード例 #23
0
    def import_json(self):
        self.scene.clear()
        self.scene.lastpos = []
        self.scene.polygon = []
        self.scene.Polygon_flag = 0
        self.scene.Rect_flag = 0
        options = self._dlg_file.Options()
        self.jsonName_, _ = self._dlg_file.getOpenFileName(self, "Read Json", "",
                                                            "Json Files (*.json);;All Files (*)",
                                                            options=options)
        if self.jsonName_ !='':
            self.import_flag = 1
            with open(self.jsonName_, 'r') as reader:
                jf = json.loads(reader.read())

            # to turn string back to byte
            image_json = jf["image"].encode(encoding="utf-8")
            ba = QByteArray.fromBase64(image_json)
            img = QImage.fromData(ba, 'PNG')
            self.pixmap = QPixmap.fromImage(img)
            photo = QGraphicsPixmapItem(self.pixmap)
            self.viewport().installEventFilter(self)
            self.setGeometry(0, 0, self.pixmap.width() + 10, self.pixmap.height() + 10)
            self.scene.addItem(photo)
            if jf["polygon"] != []:
                all_poly_item = []
                for i in jf["polygon"]:
                    single_poly_item = []
                    for j in i:
                        single_poly_item.append(QPointF(j[0], j[1]))
                    all_poly_item.append(single_poly_item)
                    # TODO: make mainwindow not only show a item, not to get this error "wrapped C/C++ object of type XXXX has been deleted"
                    print("test")
                self.scene.load_polygon_item(all_poly_item)
            else:
                print("no polygon")
            if jf["rect"] != []:
                all_rect_item = []
                for i in jf["rect"]:
                    single_rect_item = []
                    for j in i:
                        single_rect_item.append(QPointF(j[0], j[1]))
                    all_rect_item.append(single_rect_item)
                self.scene.load_rect_item(all_rect_item)
            else:
                print("no rect")
        else:
            print("no json import")
コード例 #24
0
 def doViewImages(self, info):
     # 截图回调函数
     for name, value in info.get('data', {}).items():
         try:
             pixmap = QPixmap()
             # 从base64加载图
             pixmap.loadFromData(QByteArray.fromBase64(value.encode()))
             # 显示小图
             self.textBrowserApi.document().addResource(
                 QTextDocument.ImageResource,
                 QUrl('dynamic:/{0}'.format(name)),
                 pixmap.scaledToHeight(512))
             self.textBrowserApi.append(
                 '<img src="dynamic:/{0}">'.format(name))
         except Exception as e:
             self.textBrowserApi.append('<font color=red>{0}</font>'.format(
                 str(e)))
コード例 #25
0
 def save(self, fileName, selectedFilter):
     if selectedFilter == self.filters[1]:
         img = self.page().mainFrame().evaluateJavaScript("chart.getImageURI()")
         if img:
             ba = QByteArray()
             ba.append(img[22:])
             by = QByteArray.fromBase64(ba)
             image = QImage.fromData(by, "PNG")
             image.save(fileName)
         else:
             QMessageBox.warning(self.parent(),
                         self.tr("Saving"),
                         self.tr("Image not ready. Please try again later"))
     else:
         if selectedFilter == self.filters[0]:
             with open(fileName, 'wb') as f:
                 f.write(bytes(self.html_data, 'utf-8'))
コード例 #26
0
ファイル: gui.py プロジェクト: iu7-2014/networks
    def paintEvent(self, QPaintEvent):
        if self.connected:
            try:
                self.image_base_64 = self.client.recieve_screenshot()
            except TimeoutError:
                self.critical("Сервер перестал отвечать")
                # mb = QMessageBox.critical(self, "Ошибка", "Сервер перестал отвечать")
                return


            self.data = QByteArray.fromBase64(self.image_base_64)
            self.pm = QPixmap()
            self.pm.loadFromData(self.data, "PNG")

            self._graphics_scene.clear()
            self._graphics_scene.addPixmap(self.pm)
            self.update()
コード例 #27
0
 def save(self, fileName, selectedFilter):
     if selectedFilter == self.filters[1]:
         img = self.page().mainFrame().evaluateJavaScript("chart.getImageURI()")
         if img:
             ba = QByteArray()
             ba.append(img[22:])
             by = QByteArray.fromBase64(ba)
             image = QImage.fromData(by, "PNG")
             image.save(fileName)
         else:
             QMessageBox.warning(self.parent(),
                         self.tr("Saving"),
                         self.tr("Image not ready. Please try again later"))
     else:
         if selectedFilter == self.filters[0]:
             with open(fileName, 'wb') as f:
                 f.write(bytes(self.html_data, 'utf-8'))
コード例 #28
0
	def restoreWrapperState ( self, data, stateFormat, wrapper = None ):
		newContents = None

		if wrapper and data[ "name" ]:
			wrapper.getWidget ().setObjectName ( data[ "name" ] )

		if data[ "splitter" ]:
			newContents = self.restoreSplitterState ( data[ "splitter" ], stateFormat )
		elif data[ "area" ]:
			areaType = QTWMWrapperAreaType.watTabs
			if data[ "area" ][ "type" ] and data[ "area" ][ "type" ] == "rollup":
				areaType = QTWMWrapperAreaType.watRollups

			area = self.createArea ( areaType )
			area.restoreState ( data[ "area" ], stateFormat )
			if area.count () > 0:
				newContents = area.getWidget ()
			else:
				area.deleteLater ()

		if not wrapper:
			if newContents:
				wrapper = self.createWrapper ()
				if data[ "name" ]:
					wrapper.getWidget ().setObjectName ( data[ "name" ] )
			else:
				return None

		wrapper.setContents ( newContents )

		if stateFormat == 1:
			if data[ "geometry" ]:
				if not wrapper.getWidget ().restoreGeometry ( data[ "geometry" ] ):
					print ( "Failed to restore wrapper geometry" )
		elif stateFormat == 2:
			if data[ "geometry" ]:
				if not wrapper.getWidget ().restoreGeometry ( QByteArray.fromBase64 ( data[ "geometry" ] ) ):
					print ( "Failed to restore wrapper geometry" )
		else:
			print ( "Unknown state format" )

		if data[ "geometry" ]:
			wrapper.getWidget ().show ()

		return wrapper
コード例 #29
0
    def init_ui(self):
        # set properties
        icon = QPixmap()
        icon.loadFromData(QByteArray.fromBase64(APP_ICON))
        self.setGeometry(0, 0, 500, 250)
        self.setWindowIcon(QIcon(icon))
        self.setWindowTitle(APP_NAME)

        # create widgets
        header = QLabel('STEFANN')
        header.setAlignment(Qt.AlignCenter)
        header.setStyleSheet('QLabel {font-size: 80px; font-weight: bold;}')
        button_image = QPushButton('Open Image')
        button_paper = QPushButton('About Project')
        button_about = QPushButton('README')
        for button in [button_image, button_paper, button_about]:
            button.setMinimumSize(150, 30)
            button.setStyleSheet('QPushButton {font-size: 12px;}')

        # create layout
        main_widget = QWidget()
        main_layout = QVBoxLayout()
        layout_1 = QHBoxLayout()
        layout_2 = QHBoxLayout()
        layout_1.addWidget(header)
        layout_2.addWidget(button_image)
        layout_2.addWidget(button_paper)
        layout_2.addWidget(button_about)
        main_layout.addLayout(layout_1)
        main_layout.addLayout(layout_2)
        main_widget.setLayout(main_layout)
        self.setCentralWidget(main_widget)
        self.setFixedSize(self.size())
        self.move_window_to_center()

        # set actions
        button_image.clicked.connect(self.open_image)
        button_paper.clicked.connect(
            lambda: webbrowser.open('https://prasunroy.github.io/stefann'))
        button_about.clicked.connect(lambda: webbrowser.open('readme.html'))
        return
コード例 #30
0
	def restoreSplitterState ( self, data, stateFormat ):
		if len ( data[ "items" ] ) < 2:
			print ( "Invalid splitter encountered" )
			if len ( data[ "items" ] ) == 0:
				return None

		splitter = self.createSplitter ()

		for itemData in data[ "items" ]:
			itemValue = itemData
			itemType = itemValue[ "type" ]
			if itemType == "splitter":
				w = self.restoreSplitterState ( itemValue, stateFormat )
				if w:
					splitter.addWidget ( w )
			elif itemType == "area":
				area = self.createArea ()
				area.restoreState ( itemValue, stateFormat )
				splitter.addWidget ( area.getWidget () )
			elif itemType == "rollup":
				area = self.createArea ()
				area.restoreState ( itemValue, stateFormat )
				splitter.addWidget ( area.getWidget () )
			else:
				print ( "Unknown item type" )

		if stateFormat == 1:
			if data[ "state" ]:
				if not splitter.restoreState ( data[ "state" ] ):
					print ( "Failed to restore splitter state" )
		elif stateFormat == 2:
			if data[ "state" ]:
				if not splitter.restoreState ( QByteArray.fromBase64 ( data[ "state" ] ) ):
					print ( "Failed to restore splitter state" )

		else:
			print ( "Unknown state format" )

		return splitter
コード例 #31
0
    def decodeLayerData(self, tileLayer, layerData, format):
        if format in [Map.LayerDataFormat.XML, Map.LayerDataFormat.CSV]:
            raise
            
        _layerData = QByteArray()
        _layerData.append(layerData)
        decodedData = QByteArray.fromBase64(_layerData)
        size = (tileLayer.width() * tileLayer.height()) * 4

        if (format == Map.LayerDataFormat.Base64Gzip or format == Map.LayerDataFormat.Base64Zlib):
            decodedData, size = decompress(decodedData, size)

        if (size != decodedData.length()):
            return DecodeError.CorruptLayerData

        data = decodedData.data()
        x = 0
        y = 0

        for i in range(0, size - 3, 4):
            gid = data[i] | data[i + 1] << 8 | data[i + 2] << 16 | data[i + 3] << 24

            result, ok = self.gidToCell(gid)
            if (not ok):
                self.mInvalidTile = gid
                if self.isEmpty():
                    return DecodeError.TileButNoTilesets
                else:
                    return DecodeError.InvalidTile

            tileLayer.setCell(x, y, result)

            x += 1
            if (x == tileLayer.width()):
                x = 0
                y += 1

        return DecodeError.NoError
コード例 #32
0
ファイル: logica.py プロジェクト: AnibalMisaki/PyQt5
 def byteArrayToImage(file):
     from base64 import b64encode, b64decode
     from PyQt5.QtGui import QPixmap, QImage
     from PyQt5.QtCore import QByteArray
     return QPixmap.fromImage(
         QImage.fromData(QByteArray.fromBase64(bytes(file, "utf-8"))))
コード例 #33
0
ファイル: main.py プロジェクト: bsdz/calcengine
 def state(self, val):
     self.horizontalHeader().restoreState(
         QByteArray.fromBase64(bytes(val["h_state"], encoding="utf8")))
     self.verticalHeader().restoreState(
         QByteArray.fromBase64(bytes(val["v_state"], encoding="utf8")))
コード例 #34
0
ファイル: qt_types.py プロジェクト: kkfong/openshot-qt
def str_to_bytes(string):
    """ This is required to save Qt byte arrays into a base64 string (to save screen preferences) """
    return QByteArray.fromBase64(string.encode("utf-8"))