-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
88 lines (69 loc) · 2.58 KB
/
main.py
File metadata and controls
88 lines (69 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# This Python file uses the following encoding: utf-8
import sys
import os
import time
import datetime
import psutil
from pathlib import Path
from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
from PySide2.QtCore import QObject, Slot, Signal, QTimer
class MainWindow(QObject):
def __init__(self):
QObject.__init__(self)
# QTimer for printing time every 1 second
self.timer = QTimer()
self.timer.timeout.connect(lambda: self.runningTime())
self.timer.timeout.connect(lambda: self.setTime())
self.timer.timeout.connect(lambda: self.ramUsed())
self.timer.start(1000)
# Signal set name
#setData = Signal(str)
# Signal for printing time
printTime = Signal(str)
# Signal for RAM usage
ramUsage = Signal(str)
# Signal for uptime
upTime = Signal(str)
# Function for displaying up time
def runningTime(self):
process = psutil.Process(os.getpid())
start_time = process.create_time()
time_run = time.strftime("%m%d%y%I%M%S", time.localtime(start_time))
# Current Time
now = datetime.datetime.now()
formatDateTime = now.strftime("%m%d%y%I%M%S")
timerunning = int(formatDateTime) - int(time_run)
t_running = timerunning
self.upTime.emit(f"UpTime of the app is : {t_running} seconds")
# Function for displaying Ram Usage (WIP)
def ramUsed(self):
#percent = psutil.Process(os.getpid()).memory_info().rss/1024/1024
psutil.virtual_memory()
dict(psutil.virtual_memory()._asdict())
percent = psutil.virtual_memory().available * 100 / psutil.virtual_memory().total
psutil.virtual_memory().percent
#print(percent)
self.ramUsage.emit(f"RAM used is : {percent}")
# Function for displaying time (setTime)
def setTime(self):
now = datetime.datetime.now()
formatDateTime = now.strftime("%I:%M:%S")
#print(formatDateTime) for debug only
self.printTime.emit(formatDateTime)
# Function set name to label
#@Slot(str)
#def printData(self, platform):
# self.setData.emit(f"Platform: {platform}\nTarget:\nBuild Type:")
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
# Setting up connection
main = MainWindow()
engine.rootContext().setContextProperty("backend", main)
# Load QML file
qml_file = Path(__file__).resolve().parent / "qml/main.qml"
engine.load(str(qml_file))
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec_())