Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Как правильно использовать метод bits() [RSS Feed]

#1 Июнь 13, 2013 10:28:21

zeze
От: Москва
Зарегистрирован: 2013-04-05
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно использовать метод bits()

У меня есть код:

#Глобальные
bf = []
im = QtGui.QImage(720, 492, QtGui.QImage.Format_ARGB32)
def MyTimer(self):
     global bf
     global im
      for j in range(0, 720, 1):
           bf.append([])
           for i in range(491, -1, -1):
                bf[j].append(struct.unpack("B", fp.read(1))[0])
      for j in range(0, 720, 1):
           for i in range(491, -1, -1):
                im.setPixel(j, i, QtGui.QColor(bf[j][-i], bf[j][-i], bf[j][-i], 255).rgba())
    def paintEvent(self, QPaintEvent):
         global im
         global phi
         Tochka = QtGui.QPainter()
         Tochka.begin(self)
         Tochka.translate(50, 50)
         Tochka.drawImage(0, 0, im, 0, 0, int((2*self.MyRadianToGradus(phi))+0.5), 492)
         Tochka.end()

Всё рисуеться прекрасно. Я хотел использовать в место метода setPixel метод bits и посмотреть, как с изменением именно этой части кода будет рисоваться картинка, более быстро, более медленно или также.

Пытался сделать так:

# Глобальные
bf = []
im = QtGui.QImage(720, 492, QtGui.QImage.Format_ARGB32)
ptr = im.bits()
ptr.setsize(im.byteCount())
def MyTimer(self):
     global bf
     global ptr
     for j in range(0, 720, 1):
          bf.append([])
          for i in range(491, -1, -1):
               bf[j].append(struct.unpack("B", fp.read(1))[0])
     for j in range(0, 720, 1):
          for i in range(491, -1, -1):
               ptr = QtGui.QColor(bf[j][-i], bf[j][-i], bf[j][-i], 255).rgba()
def paintEvent(self, QPaintEvent):
      global im
      global phi
      Tochka = QtGui.QPainter()
      Tochka.begin(self)
      Tochka.translate(50, 50)
      Tochka.drawImage(0, 0, im, 0, 0, int((2*self.MyRadianToGradus(phi))+0.5), 492)
      Tochka.end()

А в результате ничего не рисуеться, как я понял я не правильно заполняю ptr, а как правильно не понимаю.
Как я понял ошибка в коде:
for j in range(0, 720, 1):
          for i in range(491, -1, -1):
               ptr = QtGui.QColor(bf[j][-i], bf[j][-i], bf[j][-i], 255).rgba()

Помогите пожалуйста разобраться.

Офлайн

  • Начало
  • » GUI
  • » Как правильно использовать метод bits()[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version