Assignment 2 2026
Due date: July 2026
QUESTION 1
main.cpp
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QPen>
#include <QBrush>
#include <QColor>
#include <QComboBox>
#include <QSpinBox>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QFormLayout>
#include <memory>
//=====================================================
// Abstract base class: Shape
//=====================================================
class Shape
, QUESTION 1
main.cpp
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QPen>
#include <QBrush>
#include <QColor>
#include <QComboBox>
#include <QSpinBox>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QFormLayout>
#include <memory>
//=====================================================
// Abstract base class: Shape
//=====================================================
class Shape
{
protected:
int penWidth;
QColor penColour;
QColor fillColour;
public:
Shape(int pw = 1,
const QColor &pc = Qt::black,
const QColor &fc = Qt::white)
: penWidth(pw),
penColour(pc),
fillColour(fc)
{
}
virtual ~Shape() = default;
int getPenWidth() const
{
return penWidth;
}
QColor getPenColour() const
{
return penColour;
}
QColor getFillColour() const
{
return fillColour;
}
void setPenWidth(int width)
{
penWidth = width;