Найти - Пользователи
Полная версия: [PyQt4] поставить иконку на окно из массива байт
Начало » GUI » [PyQt4] поставить иконку на окно из массива байт
1
Viktor1703
Можно ли как - то передать в setWindowIcon массив байт иконки?

mainico = ['\x00', '\x00', '\x01', '\x00', '\x16', '\x00', ...]

И есть у кого нибудь код для получения этого массива байт автоматически?
Viktor1703
Додумался только до этого

file = open('E:\\wmp.ico', 'rb')
try:
    for byte in bytearray(file.read()):
        print('\\x{0}'.format(format(byte, '02x')))
finally:
    file.close()
Viktor1703
Мда, мёртво…. как будто на Python вообще ни кто не пишет для Desktop'a
Lexander
А смысл?
Desktop отмирает.
Задачи для десктопа не самые интересные.
Rodegast
> Можно ли как - то передать в setWindowIcon массив байт иконки?
Зачем передавать иконку в виде массива байт?

> Desktop отмирает.
Не дождётесь. Desktop жил, жив и будет жить!
py.user.next
Viktor1703
Додумался только до этого
файл, открытый в бинарном режиме и прочитанный через .read(), - уже массив байт
Viktor1703
В общем спасибо _den_ с форума по AutoIt

#-*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
mainicon = b"\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\x00\x00\x10\x00\x00\x00\x10\x08"\
           b"\x06\x00\x00\x00\x1f\xf3\xff\x61\x00\x00\x02\x1f\x49\x44\x41\x54\x38\x8d\x95\x92\xcd\x4b\x54\x51\x18"\
           b"\xc6\x7f\xe7\xce\x99\x3b\xe8\x8c\x63\x33\x6a\x9a\xc6\x84\x08\x85\x62\x5f\x34\x63\x58\x18\x31\x11\x94"\
           b"\xd4\x4a\x72\x61\x20\xad\x12\x5a\xb6\x9a\xbf\xa0\x20\xa8\x65\x0b\x21\x88\xc0\xa8\x28\x5a\xe4\x42\x86"\
           b"\xa0\x0f\x17\x92\x4c\xa6\x1b\x8b\x06\xbf\x32\x8b\xf1\x63\x72\x74\x6a\x3e\xbc\x77\x4e\x8b\xd1\xab\x71"\
           b"\x87\xa2\x67\x75\x78\xdf\xe7\xfd\xbd\xe7\x3c\x1c\x11\x89\x2a\xd5\xff\x1e\x92\x19\xfe\x4b\x5e\x1d\xae"\
           b"\xb5\x81\xf0\xdf\x54\xea\xce\xa5\x57\xa4\x55\x12\xa5\x34\x8c\x82\x8f\x42\xc1\x85\x61\xee\xc2\x34\x2b"\
           b"\x50\x38\x4b\x02\x7c\x4e\x27\x91\xe7\x7e\x64\x32\x03\x19\x31\xcf\xf8\xea\x34\xa6\x59\x8e\x59\xf0\xd0"\
           b"\xb4\xbc\x40\xdb\xd7\x51\x02\xa9\x39\x00\xa6\x3c\x47\x19\xf6\x77\xf2\xb1\xba\xc3\x02\xb4\xef\x76\xb3"\
           b"\x96\x07\x09\x80\x30\x11\x22\x87\x94\x39\x7a\x63\x8f\x09\x2d\x8c\x21\xe5\xf6\xb6\xa6\x64\x9c\xf0\xe2"\
           b"\x13\xde\xfa\x2f\xd0\x7f\xe0\x16\x86\xc3\x65\xf5\x34\x00\x81\x89\x10\x1b\x5c\x1c\x7f\x49\x7b\x62\x0c"\
           b"\x77\x6d\x00\x57\xd7\x00\x2e\x77\x19\x2e\xbd\x68\x74\x97\xc3\xa9\xe4\x20\xdd\xf1\x1b\x7f\x3c\x45\xb3"\
           b"\xb6\x2c\x4e\x13\x9e\x8b\x6d\x77\x5a\x7a\xe0\x6a\x1c\x1a\xcf\x5a\x10\x29\x21\xfc\x7d\x80\xe6\xe5\x61"\
           b"\x3b\x20\x38\x3b\x89\x94\x58\x66\x00\x3c\x0d\xd0\x1d\x85\x33\xb7\xc1\x59\xbc\x8d\xc7\xa9\x38\x39\xf3"\
           b"\xc0\x0e\xa8\x49\xad\x94\x4c\xbb\x48\xbf\x0e\x57\x3e\x40\x7d\x1b\x52\x42\x75\x7a\xca\x0e\xf8\xa7\x1c"\
           b"\x3a\xc8\x32\x00\xd4\x8e\x31\xeb\xb4\xe4\xad\xc2\x30\x4a\xcf\xaa\x89\x7e\xb8\x7f\x18\xbe\xbc\xc1\x30"\
           b"\x60\xc5\xd3\x68\x07\xc4\x1a\x5b\xec\x93\xe9\x05\x78\x7a\x1e\x31\xd4\x07\xd9\x75\x00\x92\x59\x8d\x91"\
           b"\x7d\x5d\x76\xc0\x4c\xed\x5e\x5e\x07\x0e\xf2\xf3\xd7\x66\x61\xf2\x21\xdc\x6b\x86\xa9\x21\xcb\x9c\x48"\
           b"\x09\x46\xaa\x3b\xf8\x5c\x1f\x04\x4c\x60\xeb\x23\x6d\x6a\xf0\xd8\x69\x3c\x46\x96\xe0\xb7\x38\xf2\xd9"\
           b"\x65\xab\x6e\x18\x90\xde\x10\x4c\x54\xb5\xf2\xe2\x44\x2f\x8e\xfc\x3a\x9a\x96\xb3\x03\x00\x1e\x1d\x3f"\
           b"\xc7\xbb\x44\x2b\xc1\xd9\x49\xea\x7e\x2c\x01\x30\xef\xdf\xc3\x58\x20\xc4\xa7\x9a\x10\x28\x90\x8e\x55"\
           b"\x34\x91\x2d\x02\xbc\x3a\x54\x88\x06\x8e\x54\xee\xa0\x54\x1e\x22\xbe\xbf\x93\xf8\x56\x88\x4a\xc7\x07"\
           b"\x84\xcc\x0a\x00\xf2\x46\x1d\x3e\xe9\xc0\xab\x83\x88\x44\x95\xba\x3b\x0a\x6b\x79\x7b\x86\x7f\x93\x57"\
           b"\x87\xbe\x10\xfc\x06\x4e\x94\xaf\x5e\x2d\x98\x37\xe7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82"
class Resource():
    @staticmethod
    def loadImageFromRawData(image, format):
        pixmap = QtGui.QPixmap()
        pixmap.loadFromData(QtCore.QByteArray(image), format)
        return pixmap
class Form(QtGui.QMainWindow):
    def __init__(self, parent = None):
        super(Form, self).__init__(parent)
        self.setWindowFlags(QtCore.Qt.MSWindowsFixedSizeDialogHint)
        self.setWindowIcon(QtGui.QIcon(Resource.loadImageFromRawData(mainicon, 'PNG')))
        self.setWindowTitle('Форточка')
        self.resize(500, 350)
        self.show()
class Program(QtGui.QApplication):
    def __init__(self, argv = []):
        super(Program, self).__init__(argv)
    def Run(self, form):
        if isinstance(form, QtGui.QMainWindow):
            return self.exec_()
if __name__ == '__main__':
    app = Program(sys.argv)
    sys.exit(app.Run(Form()))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB