diff options
author | Louie S <louie@example.com> | 2023-09-16 09:36:14 -0400 |
---|---|---|
committer | Louie S <louie@example.com> | 2023-09-16 09:36:14 -0400 |
commit | 5648157daee278795ccdd766f0b27f59a7331286 (patch) | |
tree | 6ecd85df7a5c0befac4d7fc1f369ba31fd2e6582 /assignment-list.py |
First commit
Diffstat (limited to 'assignment-list.py')
-rwxr-xr-x | assignment-list.py | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/assignment-list.py b/assignment-list.py new file mode 100755 index 0000000..bcb6bd1 --- /dev/null +++ b/assignment-list.py @@ -0,0 +1,121 @@ +#!/usr/bin/python3 +import sys +import time +from PyQt5.QtWidgets import QAction, QApplication, QHBoxLayout, QLabel, QMainWindow, QMessageBox, QToolBar, QVBoxLayout, QWidget +from PyQt5.QtGui import QFont +from add_group_form import addGroupForm +from group import Group + +class AssignmentList(QMainWindow): + def __init__(self): + super().__init__() + self.initializeUI() + + def initializeUI(self): + self.resize(640, 480) + self.setWindowTitle("Assignment List") + self.createMenu() + self.createToolbar() + self.displayWidgets() + self.show() + + def createMenu(self): + menu_bar = self.menuBar() + file_menu = menu_bar.addMenu("File") + edit_menu = menu_bar.addMenu("Edit") + help_menu = menu_bar.addMenu("Help") + + exit_act = QAction("Exit", self) + exit_act.setShortcut("Ctrl+Q") + exit_act.triggered.connect(self.close) + file_menu.addAction(exit_act) + + self.add_group_act = QAction("Add Group", self) + self.add_group_act.triggered.connect(self.addGroup) + edit_menu.addAction(self.add_group_act) + + about_act = QAction("About", self) + about_act.triggered.connect(self.aboutDialog) + help_menu.addAction(about_act) + + def createToolbar(self): + tool_bar = QToolBar("Toolbar") + self.addToolBar(tool_bar) + + tool_bar.addAction(self.add_group_act) + + def displayWidgets(self): + main_widget = QWidget(self) + self.setCentralWidget(main_widget) + + title = QLabel(time.strftime("%A, %b %d %Y")) + title.setFont(QFont("Arial", 17)) + + title_h_box = QHBoxLayout() + title_h_box.addStretch() + title_h_box.addWidget(title) + title_h_box.addStretch() + + self.load_groups() + self.drawGroups() + + v_box = QVBoxLayout() + v_box.addLayout(title_h_box) + v_box.addLayout(self.groups_hbox) + v_box.addStretch() + + main_widget.setLayout(v_box) + + def addGroup(self): + """ + Open the 'addGroup' form + """ + self.create_new_group_dialog = addGroupForm() + self.create_new_group_dialog.show() + + def drawGroups(self): + """ + Redraw the groups_hbox + """ + # Reset layout + self.groups_hbox = QHBoxLayout() + self.groups_hbox.setContentsMargins(20, 5, 20, 5) + + # Create columns as vertical boxes + column_left = QVBoxLayout() + column_right = QVBoxLayout() + + for g in self.groups: + if g.column == "left": + column_left.addLayout(g.buildLayout()) + else: + column_right.addLayout(g.buildLayout()) + + column_left.addStretch() + column_right.addStretch() + + self.groups_hbox.addLayout(column_left) + self.groups_hbox.addStretch() + self.groups_hbox.addLayout(column_right) + self.groups_hbox.addStretch() + + def aboutDialog(self): + QMessageBox.about(self, "About Assignment List", + "Created by Louie S. - 2023") + + def load_groups(self): + """ + Load groups data + """ + # TODO this is debug for now, with fixed values + self.groups = [] + self.groups.append(Group("test1", "left")) + self.groups.append(Group("test2", "left")) + self.groups.append(Group("test3", "right")) + self.groups.append(Group("test4", "right")) + +if __name__ == "__main__": + app = QApplication(sys.argv) + window = AssignmentList() + sys.exit(app.exec_()) + |