На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD
  
    > Торможения таймера при зарисовки цветом , Язык Python
      Прямоугольная область с торможениями закрашивается красным цветом. Но вот один раз я абсолютно также сделал и прямоугольная область быстро начала зарисовыватся красным цветом.
      Как будто это сбой самого Pathon-а. Решил привести полный код. Может кто увидит, где может быть ошибка и отпишется.
      Мой код:

      ExpandedWrap disabled
        # -*- coding: utf-8 -*-
         
        from PyQt4 import QtCore, QtGui, uic
        import math
        import os
        import struct
         
        phi = 0.0
        timer = QtCore.QTimer()
        im = QtGui.QImage(720, 492, QtGui.QImage.Format_ARGB32)
         
         
        class ld(QtGui.QDialog):
            def __init__(self, parent=None):
                super(ld, self).__init__(parent)
                self.ui = uic.loadUi("ld.ui", self)
         
                self.connect(timer, QtCore.SIGNAL("timeout()"), self.MyTimer)
                timer.start((0.005 * 1000) / 60)
         
            def paintEvent(self, QPaintEvent):
                if self.ui.radioButton.isChecked():
                    self.MyDraw()
         
                self.update()
         
            def MyRadianToGradus(self, phiedit):
                gradus = phiedit * 360 / (2 * math.pi)
                return gradus
         
            def MyGradusToRadian(self, phiedit):
                radian = phiedit * 2 * math.pi / (360)
                return radian
         
            def MyTimer(self):
                global phi
                global im
         
                if self.ui.checkBox.isChecked():
                    for j in range(0, 720, 1):
                        for i in range(491, -1, -1):
                            im.setPixel(j, i, QtGui.QColor(255, 0, 0, 255).rgba())
         
                self.update()
         
                if int(self.MyRadianToGradus(phi) + 0.5) * 720 / 360 < 720:
                    phi += self.MyGradusToRadian(6.0)
                else:
                    phi = self.MyGradusToRadian(6.0)
         
            def MyDraw(self):
                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()
         
        if __name__ == '__main__':
            import sys
         
            app = QtGui.QApplication(sys.argv)
         
            window = ld()
            window.show()
         
            sys.exit(app.exec_())
      Сообщение отредактировано: zuze -
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0415 ]   [ 15 queries used ]   [ Generated: 3.05.24, 08:25 GMT ]