schedulescreen::schedulescreen(QWidget *parent) : QWidget(parent) { // seqNumber will track the number of points that have been created seqNumber = 0; // allow user to click off points to remove blur and see all connect(this, SIGNAL(clicked()), this, SLOT(removeAllBlur())); // create title QLabel *title = new QLabel("Set your WEEKLY SCHEDULE"); title->setObjectName("title"); // create time represented by current point currentTime = new QLabel(); currentTime->setObjectName("currentTime"); currentTime->setMinimumWidth(80); currentTime->setMaximumWidth(80); currentTime->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); // create back button QPushButton *backButton = new QPushButton(); backButton->setIcon(QIcon(":/Images/glossy-blue-orb-icon-arrowback.png")); backButton->setIconSize(QSize(40,40)); backButton->setFocusPolicy(Qt::NoFocus); backButton->setObjectName("backButton"); connect(backButton,SIGNAL(clicked()),this,SLOT(close())); // create layout for top of screen QHBoxLayout *topLayout = new QHBoxLayout; topLayout->addWidget(currentTime); topLayout->addStretch(); topLayout->addWidget(title); topLayout->addStretch(); topLayout->addWidget(backButton); // create checkboxes for days of week MondayButton = new QCheckBox(QString("Mon")); MondayButton->setFocusPolicy(Qt::NoFocus); TuesdayButton = new QCheckBox(QString("Tue")); TuesdayButton->setFocusPolicy(Qt::NoFocus); WednesdayButton = new QCheckBox(QString("Wed")); WednesdayButton->setFocusPolicy(Qt::NoFocus); ThursdayButton = new QCheckBox(QString("Thu")); ThursdayButton->setFocusPolicy(Qt::NoFocus); FridayButton = new QCheckBox(QString("Fri")); FridayButton->setFocusPolicy(Qt::NoFocus); SaturdayButton = new QCheckBox(QString("Sat")); SaturdayButton->setFocusPolicy(Qt::NoFocus); SundayButton = new QCheckBox(QString("Sun")); SundayButton->setFocusPolicy(Qt::NoFocus); // create button group to hold weekdays check boxes daysButtonGroup = new QButtonGroup(this); daysButtonGroup->addButton(MondayButton); daysButtonGroup->addButton(TuesdayButton); daysButtonGroup->addButton(WednesdayButton); daysButtonGroup->addButton(ThursdayButton); daysButtonGroup->addButton(FridayButton); daysButtonGroup->addButton(SaturdayButton); daysButtonGroup->addButton(SundayButton); connect(daysButtonGroup, SIGNAL(buttonClicked(int)), this, SLOT(showPoints(int))); // set all boxes to initially checked daysButtonGroup->setExclusive(false); MondayButton->setChecked(true); TuesdayButton->setChecked(true); WednesdayButton->setChecked(true); ThursdayButton->setChecked(true); FridayButton->setChecked(true); SaturdayButton->setChecked(true); SundayButton->setChecked(true); // create time markings QLabel *hour4 = new QLabel("4AM"); QLabel *hour8 = new QLabel("8AM"); QLabel *hour12 = new QLabel("Noon"); QLabel *hour16 = new QLabel("4PM"); QLabel *hour20 = new QLabel("8PM"); // create days layout QVBoxLayout *daysButtonLayout = new QVBoxLayout; daysButtonLayout->addStretch(); daysButtonLayout->addSpacing(15); daysButtonLayout->addWidget(MondayButton); daysButtonLayout->addWidget(TuesdayButton); daysButtonLayout->addWidget(WednesdayButton); daysButtonLayout->addWidget(ThursdayButton); daysButtonLayout->addWidget(FridayButton); daysButtonLayout->addWidget(SaturdayButton); daysButtonLayout->addWidget(SundayButton); daysButtonLayout->addSpacing(15); daysButtonLayout->addStretch(); // create time layout QHBoxLayout *timeLayout = new QHBoxLayout; timeLayout->addSpacing(110); timeLayout->addWidget(hour4); timeLayout->addSpacing(24); timeLayout->addWidget(hour8); timeLayout->addSpacing(20); timeLayout->addWidget(hour12); timeLayout->addSpacing(24); timeLayout->addWidget(hour16); timeLayout->addSpacing(24); timeLayout->addWidget(hour20); timeLayout->addSpacing(50); timeLayout->setSizeConstraint(QLayout::SetFixedSize); // force time layout to retain size independent of screen size QHBoxLayout *bottomLayout = new QHBoxLayout; bottomLayout->addLayout(timeLayout); bottomLayout->setAlignment(timeLayout,Qt::AlignCenter); // create graphics view and scene scene = new QGraphicsScene(0,0,300,200); view = new QGraphicsView; view->setScene(scene); view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); view->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); // create all 28 schedule points addSchedulePoints(); // show graphics view view->show(); // create layout for graphics view and weekday checkboxes QHBoxLayout *weekdaysLayout = new QHBoxLayout; weekdaysLayout->addLayout(daysButtonLayout); weekdaysLayout->addWidget(view); // create final layout QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(topLayout); mainLayout->addStretch(); mainLayout->addLayout(weekdaysLayout); mainLayout->addLayout(bottomLayout); mainLayout->addStretch(); // show final layout setLayout(mainLayout); }
void ScheduleScreen::initializeGraphics() { initializeScene(); createScheduleScene(); addSchedulePoints(); }