Skip to content

Instantly share code, notes, and snippets.

@enkore
Created September 2, 2014 10:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save enkore/d62d6afae7d6be95822d to your computer and use it in GitHub Desktop.
Save enkore/d62d6afae7d6be95822d to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
import sys
import json
import urllib.request
import time
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtQuick import *
class Dashboard(QObject):
temperatureUpdated = pyqtSignal(str)
def __init__(self):
super().__init__()
self.view = QQuickView()
self.view.setWidth(1024)
self.view.setHeight(600)
self.view.setTitle("SpaceApi Dashboard")
self.view.setResizeMode(QQuickView.SizeRootObjectToView)
self.view.setSource(QUrl('dashboard.qml'))
self.view.show()
self.qml_rectangle = self.view.rootObject()
self.update_thread = QThread()
self.update_timer = QTimer()
self.update_timer.moveToThread(self.update_thread)
self.update_timer.setInterval(1000)
self.update_timer.timeout.connect(self.update)
self.update_thread.started.connect(self.update_timer.start)
self.update_thread.start()
self.temperatureUpdated.connect(self.qml_rectangle.updateTemperature)
@pyqtSlot()
def update(self):
print("Updating")
#time.sleep(800) # programm hängt ewig!
try:
bytedata = urllib.request.urlopen('http://status.hasi.it/spaceapi', None, 10).read()
stringdata = bytedata.decode("utf-8")
jsondata = json.loads(stringdata)
self.currentTemperature = str(jsondata['sensors']['temperature'][0]['value']) + " " + jsondata['sensors']['temperature'][0]['unit']
self.temperatureUpdated.emit("Temperatur: " + self.currentTemperature)
except Exception as e:
self.temperatureUpdated.emit("Temperatur: Error")
print(e)
app = QGuiApplication(sys.argv)
board = Dashboard()
sys.exit(app.exec_())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment