/* time calculator interface */ #include #include #include #include #include #include // for random number generation class easyfield { public: QLineEdit *qef; public: easyfield(QString s, QWidget *p) { qef = new QLineEdit(s,p); } int getIntVal() { return (qef->text()).toInt(); } double getDoubleVal() { return (qef->text()).toDouble(); } void setIntVal(int x) { qef->setText(QString::number(x)); } void setDoubleVal(double x) { qef->setText(QString::number(x)); } void setString(QString s) { qef->setText(s); } }; // end class easyfield /* Don't touch anything below unless you want to explore: */ class mywindow : public QWidget { Q_OBJECT public: mywindow(); private: // GUI components QPushButton *myButton; QLabel *l1; QLabel *l2; QLabel *l3; QLabel *l4; easyfield *field_m1; easyfield *field_m2; easyfield *field_s1; easyfield *field_s2; easyfield *field_rm; easyfield *field_rs; QGridLayout *gridl; QVBoxLayout *vboxl; public slots: void myhandler(); public: void addtime(); }; // end of class mywindow mywindow::mywindow() { setGeometry(100,100,230,110); l1 = new QLabel(" Minutes:",this); l2 = new QLabel(" Seconds: ",this); l3 = new QLabel(" + ",this); l4 = new QLabel(" = ",this); field_m1 = new easyfield("",this); field_m2 = new easyfield("",this); field_s1 = new easyfield("",this); field_s2 = new easyfield("",this); field_rm = new easyfield("",this); field_rs = new easyfield("",this); field_m1->qef->setAlignment(Qt::AlignHCenter); // set center alignments field_s1->qef->setAlignment(Qt::AlignHCenter); // set center alignments field_m2->qef->setAlignment(Qt::AlignHCenter); // set center alignments field_s2->qef->setAlignment(Qt::AlignHCenter); // set center alignments field_rm->qef->setAlignment(Qt::AlignHCenter); // set center alignments field_rs->qef->setAlignment(Qt::AlignHCenter); // set center alignments field_rm->qef->setReadOnly(true); field_rs->qef->setReadOnly(true); vboxl = new QVBoxLayout(this,2); gridl = new QGridLayout(vboxl,3,3); // grid layout of fields gridl->addWidget(l1,0,1); // add component to layout coords. gridl->addWidget(l2,0,2); gridl->addWidget(l3,2,0); gridl->addWidget(l4,3,0); gridl->addWidget(field_m1->qef,1,1); gridl->addWidget(field_s1->qef,1,2); gridl->addWidget(field_m2->qef,2,1); gridl->addWidget(field_s2->qef,2,2); gridl->addWidget(field_rm->qef,3,1); gridl->addWidget(field_rs->qef,3,2); myButton = new QPushButton(" Compute ",this); vboxl->addWidget(myButton); connect(myButton, SIGNAL( clicked() ), this, SLOT( myhandler() )); } // end of mywindow. void mywindow::myhandler() { addtime(); // call student defined function } int main(int argc, char **argv) { QApplication mainapp(argc, argv); mywindow thewindow; thewindow.setMinimumSize(100,50); mainapp.setMainWidget(&thewindow); thewindow.show(); return mainapp.exec(); // This should always be the last line } // of a Qt enhanced C++ program #include "timegui.moc" // Don't erase this line, and don't move it!