Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- # Form implementation generated from reading ui file 'mainwindow.ui'
- #
- # Created by: PyQt5 UI code generator 5.10.1
- #
- # WARNING! All changes made in this file will be lost!
- import json
- import urllib.request
- import datetime
- import threading
- import time
- from PyQt5 import QtCore, QtGui, QtWidgets
- class Threader(object):
- def __init__(self):
- self.thr = threading.Thread(target=self.run, args=(), kwargs={})
- #self.thr.daemon = True # Daemonize thread
- self.thr.start() # Start the execution
- def run(self):
- ui.statusBar.showMessage("Connecting...")
- time.sleep(1)
- ui.btn_click()
- time.sleep(1)
- class Ui_MainWindow(object):
- def setupUi(self, MainWindow):
- MainWindow.setObjectName("MainWindow")
- MainWindow.resize(181, 178)
- self.centralWidget = QtWidgets.QWidget(MainWindow)
- self.centralWidget.setObjectName("centralWidget")
- self.label = QtWidgets.QLabel(self.centralWidget)
- self.label.setGeometry(QtCore.QRect(0, 30, 181, 61))
- font = QtGui.QFont()
- font.setPointSize(36)
- self.label.setFont(font)
- self.label.setAlignment(QtCore.Qt.AlignCenter)
- self.label.setObjectName("label")
- self.pushButton = QtWidgets.QPushButton(self.centralWidget)
- self.pushButton.setGeometry(QtCore.QRect(30, 100, 121, 41))
- font = QtGui.QFont()
- font.setPointSize(14)
- self.pushButton.setFont(font)
- self.pushButton.setObjectName("pushButton")
- self.pushButton.clicked.connect(self.btn_click)
- MainWindow.setCentralWidget(self.centralWidget)
- self.statusBar = QtWidgets.QStatusBar(MainWindow)
- self.statusBar.showMessage("Ready")
- self.statusBar.setObjectName("statusBar")
- MainWindow.setStatusBar(self.statusBar)
- self.actionQuit = QtWidgets.QAction(MainWindow)
- self.actionQuit.setObjectName("actionQuit")
- #self.menuFile.addAction(self.actionQuit)
- #self.menuBar.addAction(self.menuFile.menuAction())
- self.retranslateUi(MainWindow)
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
- def btn_click(self):
- self.statusBar.showMessage("Polling server...")
- time.sleep(1)
- with urllib.request.urlopen(
- "http://api.wunderground.com/api/MYKEY/conditions/q/Canada/Calgary.json") as url:
- s = url.read()
- if s:
- the_time = datetime.datetime.now().time().replace(second=0, microsecond=0).strftime("%H:%M")
- self.statusBar.showMessage("Last check " + str(the_time))
- j = json.loads(s)
- #print(j["current_observation"]["temp_c"])
- temperature = str(j["current_observation"]["temp_c"])
- temperature += " C"
- self.label.setText(temperature)
- def retranslateUi(self, MainWindow):
- _translate = QtCore.QCoreApplication.translate
- MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
- self.label.setText(_translate("MainWindow", "0.0 C"))
- self.pushButton.setText(_translate("MainWindow", "Poll"))
- self.actionQuit.setText(_translate("MainWindow", "Quit"))
- if __name__ == "__main__":
- import sys
- app = QtWidgets.QApplication(sys.argv)
- MainWindow = QtWidgets.QMainWindow()
- ui = Ui_MainWindow()
- ui.setupUi(MainWindow)
- MainWindow.show()
- threader = Threader()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement