下面是我的头文件:
test.h:
#ifndef __MYWIDGET__
#define __MYWIDGET__
#include <QApplication>
#include <QString>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QWidget>
#include <QLineEdit>
#include <QTimer>
#include <QPainter>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
void paintEvent(QPaintEvent *);
public slots:
void showTime();
void stopTime();
void display();
protected:
QPushButton *start;
QPushButton *pause;
QLabel *biao;
QVBoxLayout *layout;
QLineEdit *edit;
QTimer *timer;
QPainter *paint;
// void MyWidget::timerEvent(QTimerEvent *event);
int i;
int j;
};
#endif
以下是test.cpp:
#include "test.h"
MyWidget::MyWidget(QWidget *parent):QWidget(parent)
{
start = new QPushButton("start",this);
pause =new QPushButton("pause",this);
biao = new QLabel("wu",this);
edit = new QLineEdit(this);
i=0;
j=9;
connect(start, SIGNAL(clicked()), this, SLOT(showTime()));
connect(pause,SIGNAL(clicked()),this,SLOT(stopTime()));
layout = new QVBoxLayout;
layout->addWidget(edit);
layout->addWidget(start);
layout->addWidget(pause);
layout->addWidget(biao);
setLayout(layout);
}
void MyWidget::showTime()
{
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(display()));
connect(timer,SIGNAL(timeout()),this,SLOT(paintEvent()));
timer->start(1000);
}
void MyWidget::display()
{
char buf[128];
int buf1[10]={9,8,7,6,5,4,3,2,1,0};
sprintf(buf,"%d",buf1[j--]);
edit->setText(buf);
biao->setText(buf);
while(!(j+1))
j=9;
}
void MyWidget::paintEvent(QPaintEvent *event)
{
paint=new QPainter;
int i=0;
for(i=0;i<=100;i++)
{
while(false);
paint->begin(this);
paint->drawPoint(400, i);
paint->end();
}
}
void MyWidget::stopTime()
{
biao->setText("changed text!");
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(killTimer()));
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
我想实现的功能是点了按钮start之后,才画图,可每次都是一运行程序他就自己画图了,
而且想点pause之后就可以停止,可也不存在killTimer这个slot,请问怎么才能实现我说的功能啊?
谢谢!
[ 此贴被XChinux在2006-03-09 15:59重新编辑 ]