Advertisement
Guest User

Dial.py

a guest
Aug 24th, 2012
422
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.36 KB | None | 0 0
  1. import sys
  2. from PyQt4 import QtGui, QtCore, Qt
  3. import math
  4.  
  5. class Example(QtGui.QWidget):
  6.    
  7.     def __init__(self):
  8.         super(Example, self).__init__()
  9.        
  10.         self.initUI()
  11.        
  12.     def initUI(self):      
  13.  
  14.         hbox = QtGui.QHBoxLayout(self)
  15.         #dial = QtGui.QPixmap("speedo4.png")
  16.        
  17.         lbl = QtGui.QLabel(self)
  18.  
  19.  
  20.         hbox.addWidget(lbl)
  21.         self.setLayout(hbox)
  22.         self.setGeometry(0, 0,600,600)
  23.        
  24.         self.move(300, 200)
  25.         self.setWindowTitle('Dial Guage')
  26.         self.show()  
  27.        
  28.     def paintEvent(self, e):
  29.         painter = QtGui.QPainter()
  30.         painter.begin(self)
  31.         dial = QtGui.QPixmap("speedo4.png")
  32.        
  33.         #painter.drawPixmap(50, 50, 600, 600, dial)
  34.        
  35.         painter.setRenderHint(painter.Antialiasing)
  36.         rect = e.rect()
  37.         #rect = QtCore.QRect(50,50,600,600)
  38.  
  39.         gauge_rect = QtCore.QRect(rect)
  40.         size = gauge_rect.size()
  41.         pos = gauge_rect.center()
  42.         gauge_rect.moveCenter( QtCore.QPoint(pos.x()-size.width(), pos.y()-size.height()) )
  43.         gauge_rect.setSize(size*.9)
  44.         gauge_rect.moveCenter(pos)
  45.  
  46.         refill_rect = QtCore.QRect(gauge_rect)
  47.         size = refill_rect.size()
  48.         pos = refill_rect.center()
  49.         refill_rect.moveCenter( QtCore.QPoint(pos.x()-size.width(), pos.y()-size.height()) )
  50.         # smaller than .9 == thicker gauge
  51.         refill_rect.setSize(size*.9)
  52.         refill_rect.moveCenter(pos)
  53.  
  54.         painter.setPen(QtCore.Qt.NoPen)
  55.  
  56.         painter.drawPixmap(rect, dial)
  57.  
  58.         painter.save()
  59.         grad = QtGui.QConicalGradient(QtCore.QPointF(gauge_rect.center()), 270.0)
  60.         grad.setColorAt(.75, QtCore.Qt.green)
  61.         grad.setColorAt(.5, QtCore.Qt.yellow)
  62.         grad.setColorAt(.1, QtCore.Qt.red)
  63.         painter.setBrush(grad)
  64.         #painter.drawPie(gauge_rect, 225.0*16, self._value*16)
  65.         painter.drawPie(gauge_rect, 225.0*16, -270*1*16)
  66.         painter.restore()
  67.  
  68.         painter.setBrush(QtGui.QBrush(dial.scaled(rect.size())))
  69.         painter.drawEllipse(refill_rect)
  70.  
  71.         super(Example,self).paintEvent(e)
  72.        
  73.        
  74.         painter.end()
  75.  
  76.        
  77. def main():
  78.    
  79.     app = QtGui.QApplication(sys.argv)
  80.     ex = Example()
  81.     sys.exit(app.exec_())
  82.  
  83.  
  84. if __name__ == '__main__':
  85.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement