본문 바로가기
SWE/Qt

Qt예제] QTimer 현재 시간 표기

by S나라라2 2019. 8. 20.
반응형

<QTimer를 이용하여 현재 시간을 표기하는 예제>

 

// mywidget.h

#include <QDialog>

class QLabel;
class QHBoxLayout;

class MyWidget : public QDialog
{
	Q_OBJECT

	public :
		MyWidget();
	
	private slots :
		void update();

	private :
		QTimer *timer;
		QLabel *lbl;
		QHBoxLayout *layout;
};

 

 

// mywidget.cpp

#include <QtGui>
#include "mywidget.h"


// QLabel 위젯에 현재 시간을 표기하고
// 1초마다 업데이트하기 위해 QTimer위젯 사용
MyWidget::MyWidget()
{
	setFixedSize(500,100);

	// QTimer
	timer = new QTimer(this);
	connect(timer, SIGNAL(timeout()), this, SLOT(update())); 
	// 일정 시간이 지나면 타임아웃 시그널이 발생해
	// update() 슬롯 함수에서 처리한다.

	lbl = new QLabel(QDateTime::currentDateTime().toString());

	layout = new QHBoxLayout;

	layout->addWidget(lbl);

	setLayout(layout);

	timer->start(1000);
	// 타임아웃이 되는 간격의 시간
	// 1000밀리초 = 1초
}

void MyWidget::update()
{
	QDateTime dateTime = QDateTime::currentDateTime();
	lbl->setText(dateTime.toString());
}

 

 

// main.cpp

#include <QApplication>
#include <QStyleFactory>

#include "mywidget.h"

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	MyWidget widget;

	QStringList styles = QStyleFactory::keys();
	app.setStyle(styles[3]);

	widget.show();
	return app.exec();
}
반응형