Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |
This example displays a digital LCD clock that can switch between time and date.
Header file:
/**************************************************************************** ** $Id: qt/dclock.h 3.3.8 edited Jan 11 14:37 $ ** ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. ** ** This file is part of an example program for TQt. This example ** program may be used, distributed and modified without limitation. ** *****************************************************************************/ #ifndef DCLOCK_H #define DCLOCK_H #include <qlcdnumber.h> class DigitalClock : public TQLCDNumber // digital clock widget { Q_OBJECT public: DigitalClock( TQWidget *parent=0, const char *name=0 ); protected: // event handlers void timerEvent( TQTimerEvent * ); void mousePressEvent( TQMouseEvent * ); private slots: // internal slots void stopDate(); void showTime(); private: // internal data void showDate(); bool showingColon; int normalTimer; int showDateTimer; }; #endif // DCLOCK_H
Implementation:
/**************************************************************************** ** $Id: qt/dclock.cpp 3.3.8 edited Jan 11 14:37 $ ** ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. ** ** This file is part of an example program for TQt. This example ** program may be used, distributed and modified without limitation. ** *****************************************************************************/ #include "dclock.h" #include <qdatetime.h> // // Constructs a DigitalClock widget with a parent and a name. // DigitalClock::DigitalClock( TQWidget *parent, const char *name ) : TQLCDNumber( parent, name ) { showingColon = FALSE; setFrameStyle( TQFrame::Panel | TQFrame::Raised ); setLineWidth( 2 ); // set frame line width showTime(); // display the current time normalTimer = startTimer( 500 ); // 1/2 second timer events showDateTimer = -1; // not showing date } // // Handles timer events for the digital clock widget. // There are two different timers; one timer for updating the clock // and another one for switching back from date mode to time mode. // void DigitalClock::timerEvent( TQTimerEvent *e ) { if ( e->timerId() == showDateTimer ) // stop showing date stopDate(); else { // normal timer if ( showDateTimer == -1 ) // not showing date showTime(); } } // // Enters date mode when the left mouse button is pressed. // void DigitalClock::mousePressEvent( TQMouseEvent *e ) { if ( e->button() == TQMouseEvent::LeftButton ) // left button pressed showDate(); } // // Shows the current date in the internal lcd widget. // Fires a timer to stop showing the date. // void DigitalClock::showDate() { if ( showDateTimer != -1 ) // already showing date return; TQDate date = TQDate::currentDate(); TQString s; s.sprintf( "%2d %2d", date.month(), date.day() ); display( s ); // sets the LCD number/text showDateTimer = startTimer( 2000 ); // keep this state for 2 secs } // // Stops showing the date. // void DigitalClock::stopDate() { killTimer( showDateTimer ); showDateTimer = -1; showTime(); } // // Shows the current time in the internal lcd widget. // void DigitalClock::showTime() { showingColon = !showingColon; // toggle/blink colon TQString s = TQTime::currentTime().toString().left(5); if ( !showingColon ) s[2] = ' '; if ( s[0] == '0' ) s[0] = ' '; display( s ); // set LCD number/text }
Main:
/**************************************************************************** ** $Id: qt/main.cpp 3.3.8 edited Jan 11 14:37 $ ** ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. ** ** This file is part of an example program for TQt. This example ** program may be used, distributed and modified without limitation. ** *****************************************************************************/ #include "dclock.h" #include <qapplication.h> int main( int argc, char **argv ) { TQApplication a( argc, argv ); DigitalClock *clock = new DigitalClock; clock->resize( 170, 80 ); a.setMainWidget( clock ); clock->setCaption("TQt Example - Digital Clock"); clock->show(); return a.exec(); }
See also Examples.
Copyright © 2007 Trolltech | Trademarks | TQt 3.3.8
|