if(ui->checkBox->isChecked())
{
int num = value.toInt();
for(int tmp= 0;tmp<20;tmp++ ){
num = num + 1;
QString s10 = QString::number(num);
emit showchange(s10);a
Sleep(1000);
}
}
我尝试将tablewidget中的数据类型从string转换成int,加了以后再转回string输出,我这里让他加20次,结果输出后它的值会在加完20次后输出,而不是加一次就在tablewidget上显示一次。
我想要数值加一次就在tablewidget上显示一次,而不是加完后显示最终的结果。达到一秒自增1的效果
有说用QTimer 但是具体操作还是一头雾水啊。
点击ok以后,界面发送自定义信号,自定义信号参数为当前值和是否递增,主窗口接收信号,槽函数实现,如果是递增启动timer,timer的槽函数中获取当前的tablewidgetItem,这里为了方便获取,你在你的自定义信号中可以加个tablewidgetItem的参数,把它传过来,然后更新tablewidgetItem的text,也就是说你的自定义信号有三个参数传过来(当前值和是否递增和当前item),否则就停止timer
下面这有timer最简单的使用。这儿的开始和暂停就是你的是否勾选自增。
https://blog.csdn.net/wzz953200463/article/details/113925660
更新表格操作不合适
timerevent starttimer killtimer
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
int timerId;
protected:
void timerEvent(QTimerEvent *event);
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
timerId = startTimer(1000);
}
MainWindow::~MainWindow()
{
killTimer(timerId);
delete ui;
}
void MainWindow::timerEvent(QTimerEvent *event)
{
qDebug() << "Update...";
//在这个把那个item设置自增的值
}