#ifndef MYWIDGET_H #define MYWIDGET_H #include #include #include #include #include #include class MyWidget : public QMainWindow { Q_OBJECT public: MyWidget(QWidget *parent = NULL) : QMainWindow(parent) { this->resize(320, 240); this->setWindowTitle("HelloGUI with Qt"); counter = 0; label = new QLabel("Hello World", this); label->setGeometry(120, 20, 150, 30); QPushButton* button = new QPushButton( "Increment", this); button->setGeometry(120, 50, 150, 30); createActions(); createMenus(); QObject::connect(button, SIGNAL(clicked()), this, SLOT(buttonClicked())); QObject::connect(incrementAct, SIGNAL(triggered()), this, SLOT(buttonClicked())); QObject::connect(resetAct, SIGNAL(triggered()), this, SLOT(resetClicked())); } public slots: void buttonClicked() { counter++; label->setText(QString("Click #%1").arg(counter)); } void resetClicked() { counter = 0; label->setText(QString("Click #%1").arg(counter)); } private: void createActions() { incrementAct = new QAction("Increment", this); incrementAct->setShortcut(QKeySequence(Qt::ALT + Qt::Key_I)); incrementAct->setToolTip(tr("Increment the counter")); resetAct = new QAction("Reset", this); resetAct->setShortcut(QKeySequence(Qt::ALT + Qt::Key_R)); resetAct->setToolTip(tr("Reset the counter")); } void createMenus() { QMenuBar* bar = menuBar(); QMenu* fileMenu = bar->addMenu(tr("Counter")); fileMenu->addAction(incrementAct); fileMenu->addAction(resetAct); } private: int counter; QLabel* label; QAction* incrementAct; QAction* resetAct; }; #endif // MYWIDGET_H