INF2611
Assignment 4
DUE 16 September 2025
, Module: INF2611 - Visual Programming II
Assignment: Assignment 4 - GUI Design & Explanation
Student name:
Student number:
Date submitted:
Lecturer / Tutor:
Question One: GUI Design (40 marks)
Design summary
I designed a 4-page GUI using PyQt5 (exported from Qt Designer and adapted to Python).
• Page 1 (Login) Username and Password fields, Login and Cancel buttons.
• Page 2 (Home / Dashboard) Welcome message, navigation buttons to other pages,
simple status display.
• Page 3 (Calendar & Notes) QCalendarWidget plus a QTextEdit to write/save notes
(uses traditional file handling to save to notes.txt ).
• Page 4 (Profile / Logo & Settings) Displays a graphic logo, some user details and a Save
button that writes settings to settings.txt .
All buttons are functional. The app uses a QStackedWidget to move between pages after a
successful login. The login verifies entries against the placeholders which you must replace
before submission.
GUI code 1: Login screen
# GUI code 1 - login.py
# Requirements: PyQt5
# Replace USER_SURNAME and USER_STUDENT_NO with your own details before
running.
from PyQt5.QtWidgets import (
Assignment 4
DUE 16 September 2025
, Module: INF2611 - Visual Programming II
Assignment: Assignment 4 - GUI Design & Explanation
Student name:
Student number:
Date submitted:
Lecturer / Tutor:
Question One: GUI Design (40 marks)
Design summary
I designed a 4-page GUI using PyQt5 (exported from Qt Designer and adapted to Python).
• Page 1 (Login) Username and Password fields, Login and Cancel buttons.
• Page 2 (Home / Dashboard) Welcome message, navigation buttons to other pages,
simple status display.
• Page 3 (Calendar & Notes) QCalendarWidget plus a QTextEdit to write/save notes
(uses traditional file handling to save to notes.txt ).
• Page 4 (Profile / Logo & Settings) Displays a graphic logo, some user details and a Save
button that writes settings to settings.txt .
All buttons are functional. The app uses a QStackedWidget to move between pages after a
successful login. The login verifies entries against the placeholders which you must replace
before submission.
GUI code 1: Login screen
# GUI code 1 - login.py
# Requirements: PyQt5
# Replace USER_SURNAME and USER_STUDENT_NO with your own details before
running.
from PyQt5.QtWidgets import (