Qt使用QThread或QTimer逐个添加点?
我想在Qt中制作一个程序,一个一个地添加点,而不是一次添加所有点。要做到这一点,我需要使用QThread,或者我可以只使用QTimer?这可以使用QTimer来完成,如果它与时间相关,比如每1秒一次,那么这就是方法。只需创建计时器,将其超时信号连接到插槽,它就会像一个符咒一样工作您需要创建一些类,继承自QObject: 用于添加点的插槽可能如下所示:Qt使用QThread或QTimer逐个添加点?,qt,Qt,我想在Qt中制作一个程序,一个一个地添加点,而不是一次添加所有点。要做到这一点,我需要使用QThread,或者我可以只使用QTimer?这可以使用QTimer来完成,如果它与时间相关,比如每1秒一次,那么这就是方法。只需创建计时器,将其超时信号连接到插槽,它就会像一个符咒一样工作您需要创建一些类,继承自QObject: 用于添加点的插槽可能如下所示: void Test_Timer::addPoint() { static int number = 0; if (lst->
void Test_Timer::addPoint()
{
static int number = 0;
if (lst->size() < 10) {
lst->append(QPoint(0, number++));
qDebug() << lst->size();
} else {
timer->stop();
deleteLater();
}
}
我想这个例子会对你有帮助。你能告诉我们你到目前为止做了什么吗?我只是一次添加了所有的点。什么是点?有多少,为什么不是一次全部?这是一个很好的猜测尝试,但真的,你不应该鼓励那些提出如此模糊问题的海报。
Test_Timer::Test_Timer(QObject *parent) : QObject(parent)
{
lst = new QList<QPoint>;
timer = new QTimer;
connect(timer, SIGNAL(timeout()), this, SLOT(addPoint()));
timer->start(500);
}
void Test_Timer::addPoint()
{
static int number = 0;
if (lst->size() < 10) {
lst->append(QPoint(0, number++));
qDebug() << lst->size();
} else {
timer->stop();
deleteLater();
}
}
Test_Timer::~Test_Timer()
{
lst->clear();
delete lst;
if (timer->isActive())
timer->stop();
delete timer;
}