#include #include #include #include #include #include class MyPushButton : public QPushButton { public: MyPushButton( const QString & p_text, QTextStream & timingsLog ) : QPushButton( p_text ), timingsLog( timingsLog ) { } protected: virtual void paintEvent( QPaintEvent * p_event ) { QElapsedTimer timer; timer.start(); QPushButton::paintEvent( p_event ); timingsLog << "paint event time: " << timer.elapsed() << endl; } private: QTextStream & timingsLog; }; int main(int argc, char *argv[]) { QFile timingsLogFile( "timings.txt" ); timingsLogFile.open( QFile::WriteOnly ); QTextStream timingsLog( &timingsLogFile ); QElapsedTimer timer; timer.start(); timingsLog << "Clock type: " << timer.clockType() << endl; QApplication a(argc,argv); timingsLog << "app constructor time: " << timer.elapsed() << endl; timer.restart(); MyPushButton quit("Hello world!", timingsLog); quit.resize(175,30); QObject::connect(&quit,SIGNAL(clicked()),&a,SLOT(quit())); quit.show(); MyPushButton quit2("Hello world 2!", timingsLog); quit2.resize(175,30); quit2.setFont(QFont("Courier",18,QFont::Bold)); QObject::connect(&quit2,SIGNAL(clicked()),&a,SLOT(quit())); quit2.show(); MyPushButton quit3("Hello world 3!", timingsLog); quit3.resize(175,30); quit3.setFont(QFont("Arial",18,QFont::Bold)); QObject::connect(&quit3,SIGNAL(clicked()),&a,SLOT(quit())); quit3.show(); timingsLog << "button creation time: " << timer.elapsed() << endl; return a.exec(); }