-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgui.py
More file actions
61 lines (49 loc) Β· 2.06 KB
/
Copy pathgui.py
File metadata and controls
61 lines (49 loc) Β· 2.06 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
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QListWidget, QProgressBar, QMessageBox
from database import list_courses, mark_completed, export_courses
class CourseGUI(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("CourseTracker")
self.layout = QVBoxLayout()
self.list_widget = QListWidget()
self.layout.addWidget(self.list_widget)
self.progress = QProgressBar()
self.layout.addWidget(self.progress)
self.refresh_btn = QPushButton("Load Courses")
self.refresh_btn.clicked.connect(self.load_courses)
self.layout.addWidget(self.refresh_btn)
self.complete_btn = QPushButton("Mark Selected Completed")
self.complete_btn.clicked.connect(self.complete_selected)
self.layout.addWidget(self.complete_btn)
self.export_btn = QPushButton("Export to Excel")
self.export_btn.clicked.connect(self.export_courses)
self.layout.addWidget(self.export_btn)
self.setLayout(self.layout)
self.load_courses()
def load_courses(self):
self.list_widget.clear()
courses = list_courses()
completed_count = 0
for c in courses:
status = "β
" if c[4] else "β"
if c[4]:
completed_count += 1
self.list_widget.addItem(f"{c[0]}. {c[1]} [{c[2]}] {status}")
total = len(courses)
self.progress.setValue(int((completed_count / total) * 100) if total else 0)
def complete_selected(self):
selected = self.list_widget.currentItem()
if selected:
course_id = int(selected.text().split(".")[0])
mark_completed(course_id)
self.load_courses()
else:
QMessageBox.information(self, "Info", "Select a course first!")
def export_courses(self):
export_courses()
QMessageBox.information(self, "Export", "Courses exported to courses_export.xlsx")
app = QApplication(sys.argv)
window = CourseGUI()
window.show()
sys.exit(app.exec_())