Advertisement
Guest User

Test

a guest
Apr 22nd, 2015
453
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.54 KB | None | 0 0
  1. from __future__ import unicode_literals
  2. from PyQt4 import QtCore, QtGui
  3. import os
  4. import time
  5. import sys
  6. from threading import *
  7. import random
  8. import numpy as np
  9. import matplotlib.pyplot as plt
  10.  
  11. from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
  12.  
  13. progname = os.path.basename(sys.argv[0])
  14. progversion = "0.1"
  15.  
  16. try:
  17.     _fromUtf8 = QtCore.QString.fromUtf8
  18. except AttributeError:
  19.     def _fromUtf8(s):
  20.         return s
  21.  
  22. try:
  23.     _encoding = QtGui.QApplication.UnicodeUTF8
  24.     def _translate(context, text, disambig):
  25.         return QtGui.QApplication.translate(context, text, disambig, _encoding)
  26. except AttributeError:
  27.     def _translate(context, text, disambig):
  28.         return QtGui.QApplication.translate(context, text, disambig)
  29.  
  30. class Ui_MainWindow(object):
  31.     def setupUi(self, MainWindow):
  32.         MainWindow.setObjectName(_fromUtf8("MainWindow"))
  33.         MainWindow.resize(800, 600)
  34.         self.centralwidget = QtGui.QWidget(MainWindow)
  35.         self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
  36.         self.gridLayout_3 = QtGui.QGridLayout(self.centralwidget)
  37.         self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
  38.         self.PropaanEquivalent = QtGui.QLabel(self.centralwidget)
  39.         self.PropaanEquivalent.setObjectName(_fromUtf8("PropaanEquivalent"))
  40.         self.gridLayout_3.addWidget(self.PropaanEquivalent, 4, 3, 1, 1)
  41.         self.CH4 = QtGui.QLabel(self.centralwidget)
  42.         self.CH4.setObjectName(_fromUtf8("CH4"))
  43.         self.gridLayout_3.addWidget(self.CH4, 2, 3, 1, 1)
  44.         self.CARI = QtGui.QLabel(self.centralwidget)
  45.         self.CARI.setObjectName(_fromUtf8("CARI"))
  46.         self.gridLayout_3.addWidget(self.CARI, 3, 0, 1, 1)
  47.         self.WobbeIndex = QtGui.QLabel(self.centralwidget)
  48.         self.WobbeIndex.setObjectName(_fromUtf8("WobbeIndex"))
  49.         self.gridLayout_3.addWidget(self.WobbeIndex, 2, 0, 1, 1)
  50.         self.WobbeIndexField = QtGui.QLineEdit(self.centralwidget)
  51.         self.WobbeIndexField.setObjectName(_fromUtf8("WobbeIndexField"))
  52.         self.gridLayout_3.addWidget(self.WobbeIndexField, 2, 1, 1, 1)
  53.         self.pushButton = QtGui.QPushButton(self.centralwidget)
  54.         self.pushButton.setObjectName(_fromUtf8("pushButton"))
  55.         self.gridLayout_3.addWidget(self.pushButton, 1, 0, 1, 1)
  56.         self.pushButton.clicked.connect(self.timer)
  57.         self.CARI_Field = QtGui.QLineEdit(self.centralwidget)
  58.         self.CARI_Field.setObjectName(_fromUtf8("CARI_Field"))
  59.         self.gridLayout_3.addWidget(self.CARI_Field, 3, 1, 1, 1)
  60.         self.CH4_field = QtGui.QLineEdit(self.centralwidget)
  61.         self.CH4_field.setObjectName(_fromUtf8("CH4_field"))
  62.         self.gridLayout_3.addWidget(self.CH4_field, 2, 4, 1, 1)
  63.         self.Propaan_field = QtGui.QLineEdit(self.centralwidget)
  64.         self.Propaan_field.setObjectName(_fromUtf8("Propaan_field"))
  65.         self.gridLayout_3.addWidget(self.Propaan_field, 4, 4, 1, 1)
  66.         self.Dichtheid = QtGui.QLabel(self.centralwidget)
  67.         self.Dichtheid.setObjectName(_fromUtf8("Dichtheid"))
  68.         self.gridLayout_3.addWidget(self.Dichtheid, 3, 3, 1, 1)
  69.         self.Verbrandingswaarde = QtGui.QLabel(self.centralwidget)
  70.         self.Verbrandingswaarde.setObjectName(_fromUtf8("Verbrandingswaarde"))
  71.         self.gridLayout_3.addWidget(self.Verbrandingswaarde, 4, 0, 1, 1)
  72.         self.Verbrandingswaarde_field = QtGui.QLineEdit(self.centralwidget)
  73.         self.Verbrandingswaarde_field.setObjectName(_fromUtf8("Verbrandingswaarde_field"))
  74.         self.gridLayout_3.addWidget(self.Verbrandingswaarde_field, 4, 1, 1, 1)
  75.         self.Dichtheid_field = QtGui.QLineEdit(self.centralwidget)
  76.         self.Dichtheid_field.setObjectName(_fromUtf8("Dichtheid_field"))
  77.         self.gridLayout_3.addWidget(self.Dichtheid_field, 3, 4, 1, 1)
  78.         spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
  79.         self.gridLayout_3.addItem(spacerItem, 5, 2, 1, 1)
  80.         self.result_field = QtGui.QLineEdit(self.centralwidget)
  81.         self.result_field.setObjectName(_fromUtf8("result_field"))
  82.         self.gridLayout_3.addWidget(self.result_field, 1, 1, 1, 1)
  83.         self.aantalSensoren_label = QtGui.QLabel(self.centralwidget)
  84.         self.aantalSensoren_label.setObjectName(_fromUtf8("aantalSensoren_label"))
  85.         self.gridLayout_3.addWidget(self.aantalSensoren_label, 1, 3, 1, 1)
  86.         self.aantalSensoren_field = QtGui.QLineEdit(self.centralwidget)
  87.         self.aantalSensoren_field.setObjectName(_fromUtf8("aantalSensoren_field"))
  88.         self.gridLayout_3.addWidget(self.aantalSensoren_field, 1, 4, 1, 1)
  89.         MainWindow.setCentralWidget(self.centralwidget)
  90.         self.menubar = QtGui.QMenuBar(MainWindow)
  91.         self.menubar.setGeometry(QtCore.QRect(0, 0, 656, 21))
  92.         self.menubar.setObjectName(_fromUtf8("menubar"))
  93.         MainWindow.setMenuBar(self.menubar)
  94.         self.statusbar = QtGui.QStatusBar(MainWindow)
  95.         self.statusbar.setObjectName(_fromUtf8("statusbar"))
  96.         MainWindow.setStatusBar(self.statusbar)
  97.  
  98.         self.dc = MyMplCanvas(MainWindow, width=1, height=2, dpi=100)
  99.         self.gridLayout_3.addWidget(self.dc, 5, 0, 1, 5)
  100.  
  101.         self.retranslateUi(MainWindow)
  102.         QtCore.QMetaObject.connectSlotsByName(MainWindow)
  103.  
  104.     def retranslateUi(self, MainWindow):
  105.         MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
  106.         self.PropaanEquivalent.setText(_translate("MainWindow", "Propaan Equivalent:", None))
  107.         self.CH4.setText(_translate("MainWindow", "CH4:", None))
  108.         self.CARI.setText(_translate("MainWindow", "CARI:", None))
  109.         self.WobbeIndex.setText(_translate("MainWindow", "Wobbe Index:", None))
  110.         self.pushButton.setText(_translate("MainWindow", "Start", None))
  111.         self.Dichtheid.setText(_translate("MainWindow", "Dichtheid:", None))
  112.         self.Verbrandingswaarde.setText(_translate("MainWindow", "Verbrandingswaarde:", None))
  113.         self.aantalSensoren_label.setText(_translate("MainWindow", "aantal aangesloten sensoren:", None))
  114.  
  115.     def closeEvent(self, event):
  116.         reply = QtGui.QMessageBox.question(self, 'Message',
  117.             "Are you sure to quit?", QtGui.QMessageBox.Yes |
  118.             QtGui.QMessageBox.No, QtGui.QMessageBox.No)
  119.  
  120.         if reply == QtGui.QMessageBox.Yes:
  121.             event.accept()
  122.         else:
  123.             event.ignore()
  124.         self.fileQuit()
  125.  
  126.     def task(self):
  127.         while True:
  128.             ui.dc.update_figure()
  129.             time.sleep(1.0)
  130.  
  131.     def timer(self):
  132.         t = Timer(1.0, self.task())
  133.         t.start()
  134.  
  135. def getCO22():
  136.     '''return the CO2 concentration in the atmosphere
  137.    '''
  138.     return 369.56 + random.random()*50
  139.  
  140.  
  141. class MyMplCanvas(FigureCanvas):
  142.     """Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.)."""
  143.     def __init__(self, parent=None, width=5, height=4, dpi=100):
  144.         self.fig = plt.figure(figsize=(width, height), dpi=dpi)
  145.         # self.fig = Figure(figsize=(width, height), dpi=dpi)
  146.         super(MyMplCanvas,self).__init__(self.fig)
  147.         self.yAxe = np.array([0])
  148.         self.xAxe = np.array([0])
  149.         self.i = 0
  150.  
  151.         self.axes = self.fig.add_subplot(111)
  152.         self.axes.autoscale(False)
  153.         #We want the axes cleared every time plot() is called
  154.         self.axes.hold(False)
  155.         self.axes.set_ylim(0, 500)
  156.  
  157.         self.compute_initial_figure()
  158.         # plt.show(block=False)
  159.  
  160.         FigureCanvas.__init__(self, self.fig)
  161.         self.setParent(parent)
  162.  
  163.         FigureCanvas.setSizePolicy(self,
  164.                                    QtGui.QSizePolicy.Expanding,
  165.                                    QtGui.QSizePolicy.Expanding)
  166.         FigureCanvas.updateGeometry(self)
  167.  
  168.     def compute_initial_figure(self):
  169.         self.axes.plot([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
  170.  
  171.     def update_figure(self):
  172.         self.yAxe = np.append(self.yAxe, (getCO22()))
  173.         self.xAxe = np.append(self.xAxe, self.i)
  174.         print(self.xAxe, self.yAxe)
  175.         if len(self.yAxe) > 10:
  176.             self.yAxe = np.delete(self.yAxe, 0)
  177.  
  178.         if len(self.xAxe) > 10:
  179.             self.xAxe = np.delete(self.xAxe, 0)
  180.  
  181.         self.axes.plot(self.xAxe, self.yAxe)
  182.         self.axes.set_xlim(self.xAxe[0],self.xAxe[len(self.xAxe)-1])
  183.         self.axes.grid(True)
  184.  
  185.         self.i = self.i + 1
  186.  
  187.         self.fig.canvas.draw()
  188.  
  189. # if  __name__ =='__main__':
  190. app = QtGui.QApplication(sys.argv)
  191. MainWindow = QtGui.QMainWindow()
  192. ui = Ui_MainWindow()
  193. ui.setupUi(MainWindow)
  194. MainWindow.show()
  195. sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement