Qt运行时错误
Qt Runtime Error
我正在使用Qt IDE。以下代码导致Microsoft Visual C++运行库错误。此外,该程序不显示文本为"NewYork"answers"London"的项目,而是显示"NewYork"answers"Londonk",然后崩溃。这是代码。
void MainWindow::on_listWidget_itemClicked(QListWidgetItem *item) // creates comments for item
{
ui->listWidget_2->clear();
ui->commentbutton->setEnabled(true);
QFile files("E:/"+QString::number(ui->listWidget->currentRow())+"com.txt");
if(files.exists())
{
if(!files.open(QFile::ReadOnly | QFile::Text))
{
QMessageBox::warning(this,"File Access!!!","The File containing data of the Items and Comments can't be acessed",QMessageBox::Ok);
return;
}
QTextStream in(&files);
QString data(in.readLine());
int x=0;
QString temp;
for(int i=0;;i++)
{
if(i>data.size())
break;
if(data.at(i)!='@' && data.at(i+1)!='#')
{
temp[x]=data.at(i);
x++;
}
else
if(data.at(i)=='@' && data.at(i+1)=='#')
{
QListWidgetItem *itm=new QListWidgetItem;
x=0;
i++;
itm->setText(temp);
ui->listWidget_2->addItem(itm);
}
}
files.close();
}
该程序正确地生成Xcom.txt文件(X是一个数字)。我从中检索数据的文件包含此
纽约@#伦敦@#。
代码的逻辑太复杂了。使用QString.split
获取您感兴趣的零件。
示例:
#include <QtCore>
int main(void)
{
QString foo("NewYork@#London@#");
QStringList parts = foo.split("@#", QString::SkipEmptyParts);
foreach(QString part, parts) {
qDebug() << part;
}
return 0;
}
你的代码可以简化为:
QString data(in.readLine());
QStringList parts = data.split("@#", QString::SkipEmptyParts);
foreach (QString part, parts) {
QListWidgetItem *itm=new QListWidgetItem;
itm->setText(part);
ui->listWidget_2->addItem(itm);
}
它是if(i>=data.size())
运行时错误可能是断言,因为您超出了QString中的最后一个字符。
相关文章:
- 删除指向指针的指针是运行时错误吗
- c++中的指针和运行时错误
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 在同一模拟中使用静脉和静脉_ inet内容时出现运行时错误
- 对单向链表进行排序时出现运行时错误
- 为什么此代码存在运行时错误?
- 你能解释一下什么运行时错误是如何解决它的吗?
- 为什么会出现 gettnig 运行时错误:加载类型为"_Bit_type"(stl_bvector.h) 的空指针?
- 为什么程序在 c++ 中迭代 emtpy 向量时会抛出运行时错误
- QT C++防止关闭应用程序时出现运行时错误
- Qt 应用程序中与Qt版本相关的运行时错误
- QT "relocation error" / "no version information available"运行时错误
- 多线程会导致 Qt 中的运行时错误
- QT程序无法编译/具有运行时错误(IDE:CodeBlocks/QTCreator)
- 带有QWT运行时错误的QT:QWIDGET:必须在Qwidget之前构造Qapplication
- Qt运行时错误
- qt运行时错误,程序意外完成
- 通过CMake构建的ios上Qt应用程序的运行时错误
- VTK Qt小部件抛出运行时错误时,放置在GUI
- 使用派生类时出现Qt运行时错误