Difference between revisions of "Qt/Widgets/Timer"
From ProgrammingExamples
< Qt
Daviddoria (Talk | contribs) (Do not subclass QThread.) |
Daviddoria (Talk | contribs) (Undo revision 5098 by Daviddoria (Talk) Oops, changed wrong page.) |
||
Line 21: | Line 21: | ||
<source lang="cpp"> | <source lang="cpp"> | ||
#include <QtGui> | #include <QtGui> | ||
− | #include < | + | //#include <qtimer.h> |
+ | #include <QTimer> | ||
#include "form.h" | #include "form.h" | ||
− | |||
− | |||
#include <iostream> | #include <iostream> | ||
− | + | MainWindow::MainWindow() | |
− | + | ||
{ | { | ||
− | setupUi(this); | + | ui.setupUi(this); |
} | } | ||
− | void | + | void MainWindow::on_btnStart_clicked() |
{ | { | ||
− | + | std::cout << "button clicked." << std::endl; | |
− | + | ||
− | + | //QTimer* timer = new QTimer(this); | |
− | + | connect(&timer, SIGNAL(timeout()), this, SLOT(TimerEvent())); | |
− | connect( | + | this->timer.start(1000); |
− | + | ||
− | + | //QProgressDialog dialog; | |
− | + | this->dialog.setMaximum(0); | |
+ | this->dialog.setMinimum(0); | ||
+ | this->dialog.exec(); | ||
− | |||
} | } | ||
− | + | void MainWindow::TimerEvent() | |
+ | { | ||
+ | std::cout << "Timer expired." << std::endl; | ||
+ | this->dialog.cancel(); | ||
+ | this->timer.stop(); | ||
+ | } | ||
</source> | </source> | ||
==form.h== | ==form.h== | ||
<source lang="cpp"> | <source lang="cpp"> | ||
− | #ifndef | + | #ifndef BUTTONFORM_H |
− | #define | + | #define BUTTONFORM_H |
− | #include " | + | #include "ui_main.h" |
− | class | + | //class QTimer; |
− | + | #include <QTimer> | |
− | + | //class QProgressDialog; | |
+ | #include <QProgressDialog> | ||
− | public | + | //class MainWindow : public QWidget |
− | + | class MainWindow : public QMainWindow | |
− | + | { | |
+ | Q_OBJECT | ||
public: | public: | ||
− | + | MainWindow(); | |
+ | |||
+ | public slots: | ||
+ | void on_btnStart_clicked(); | ||
+ | void TimerEvent(); | ||
+ | private: | ||
+ | Ui::MainWindow ui; | ||
+ | //QTimer* timer = new QTimer(this); | ||
+ | QTimer timer; | ||
+ | QProgressDialog dialog; | ||
}; | }; | ||
Latest revision as of 11:12, 16 December 2011
Timer.cpp
#include <QProgressDialog> #include <QApplication> #include "form.h" int main( int argc, char **argv ) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); }
form.cpp
#include <QtGui> //#include <qtimer.h> #include <QTimer> #include "form.h" #include <iostream> MainWindow::MainWindow() { ui.setupUi(this); } void MainWindow::on_btnStart_clicked() { std::cout << "button clicked." << std::endl; //QTimer* timer = new QTimer(this); connect(&timer, SIGNAL(timeout()), this, SLOT(TimerEvent())); this->timer.start(1000); //QProgressDialog dialog; this->dialog.setMaximum(0); this->dialog.setMinimum(0); this->dialog.exec(); } void MainWindow::TimerEvent() { std::cout << "Timer expired." << std::endl; this->dialog.cancel(); this->timer.stop(); }
form.h
#ifndef BUTTONFORM_H #define BUTTONFORM_H #include "ui_main.h" //class QTimer; #include <QTimer> //class QProgressDialog; #include <QProgressDialog> //class MainWindow : public QWidget class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); public slots: void on_btnStart_clicked(); void TimerEvent(); private: Ui::MainWindow ui; //QTimer* timer = new QTimer(this); QTimer timer; QProgressDialog dialog; }; #endif
main.ui
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>205</width> <height>169</height> </rect> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <widget class="QWidget" name="centralwidget"> <widget class="QPushButton" name="btnStart"> <property name="geometry"> <rect> <x>60</x> <y>90</y> <width>91</width> <height>28</height> </rect> </property> <property name="text"> <string>Start</string> </property> </widget> </widget> </widget> <resources/> <connections/> </ui>
CMakeLists.txt
cmake_minimum_required(VERSION 2.6) PROJECT(Timer) FIND_PACKAGE(Qt4 REQUIRED) INCLUDE(${QT_USE_FILE}) QT4_WRAP_UI(UISrcs main.ui) QT4_WRAP_CPP(MOCSrcs form.h) include_directories(${include_directories} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) ADD_EXECUTABLE(Timer Timer.cpp form.h form.cpp ${UISrcs} ${MOCSrcs}) TARGET_LINK_LIBRARIES(Timer ${QT_LIBRARIES})