C++ 如何使用QTextStream读取行,每次使用一个,使用计时器
我想用定时器每秒读取一行文件。计时器启动后,读取第一行,一秒钟后,读取第二行 但没有读取QTextStream中特定行的函数。关于如何实现这一点有什么想法吗 如果我运行以下代码,它将始终返回C++ 如何使用QTextStream读取行,每次使用一个,使用计时器,c++,C++,我想用定时器每秒读取一行文件。计时器启动后,读取第一行,一秒钟后,读取第二行 但没有读取QTextStream中特定行的函数。关于如何实现这一点有什么想法吗 如果我运行以下代码,它将始终返回 不要每次启动计时器时都打开该文件,而是将QFile设置为simulatorwindow的成员。当程序启动时打开它,每当计时器启动时读取它。在中单击可以将textsim定义为局部变量,并在sendmsg中使用相同名称的变量。但它不是同一个变量 在simON上单击的中,您应该使用(显然)成员变量,因为局部变量在
不要每次启动计时器时都打开该文件,而是将QFile设置为simulatorwindow的成员。当程序启动时打开它,每当计时器启动时读取它。在
中单击
可以将textsim
定义为局部变量,并在sendmsg
中使用相同名称的变量。但它不是同一个变量
在simON上单击的
中,您应该使用(显然)成员变量,因为局部变量在函数外部不可用。如果在编译器中启用更多警告,则会收到关于将局部变量“shadow”作为成员/全局变量的警告
QTextStream: no device
QTextStream: no device
QTextStream: no device
QTextStream: no device
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(sendmsg()));
void simulatorwindow::on_simON_clicked()
{
simfile = QFileDialog::getOpenFileName(this, tr("Open"),"", tr("Files (*.txt)"));
QFile simfile(simfile);
if (!simfile.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QTextStream textsim(&simfile);
timer->start(1000);
qDebug("Start simulation");
}
void simulatorwindow::on_simOFF_clicked()
{
timer->stop();
qDebug("Stop simulation");
}
void simulatorwindow::sendmsg()
{
QString line = textsim.readLine();
QString title = line.section(',', 0,0);
QString chopped = line.section(',', 1,1);
}