C++ 从listWidget中选择并添加到textedit
好的,所以标题可能是轻描淡写的,我会在这里解释。我有一个C++ 从listWidget中选择并添加到textedit,c++,xml,qt,parsing,C++,Xml,Qt,Parsing,好的,所以标题可能是轻描淡写的,我会在这里解释。我有一个列表小部件和一个文本编辑。所以我首先读取了一个xml文件(这个xml文件有其他配置文件的路径)。我将从XML文件获取的所有路径存储在如下结构中: 标题 struct triStringList { QString Filename; QString block; QString flag; QString aktioncommand; }; QList&
列表小部件
和一个文本编辑
。所以我首先读取了一个xml文件(这个xml文件有其他配置文件的路径)。我将从XML文件获取的所有路径存储在如下结构中:
标题
struct triStringList
{
QString Filename;
QString block;
QString flag;
QString aktioncommand;
};
QList<triStringList> allTriList;
QList <QListWidgetItem*> items;
但当我点击文件时,我得到:
ASSERT failure in QList<T>::operator[]: "index out of range", file C:\app\Tools\Qt\5.4\msvc2010_opengl\include\QtCore/qlist.h, line 486
QList::operator[]中的断言失败:“索引超出范围”,文件C:\app\Tools\Qt\5.4\msvc2010\u opengl\include\QtCore/QList.h,第486行
程序崩溃,从调试中我发现它在这里崩溃:
for(int j=0;j据我所知:你有一个外循环(counting varI
)和一个内循环(counting varj
),用来比较两个列表。对于外循环中的每个项目(I
)您对内部循环(j
)中的每个项目执行搜索
if(items[j]->text() == list1[j])
我想你是想做以下比较:
if(items[j]->text() == list1[i])
list1
的大小可以与项的大小不同。检查一下。为什么在那里使用QFile
?在使用xml代码段时对我很好。输出是。我不知道为什么它对我不起作用。它显示FLags=“”或者将其与列表列表1
进行比较似乎没有任何作用。@user5820174因为它不应该起作用。如果您想这样做,请使用它。@user5820174似乎您只是在调试循环中的值。因此,在第一次迭代中,您有文件1
。在第二次迭代中,您有文件1,文件2
等等。@user5820174您正在将新文件名附加到相同的triStringList
。请创建一个新对象或将triStr.Filename.append
替换为triStr.Filename=
。其他变量也是如此。@user5820174是否确定它是标志而不是标志
?检查QXmlGet::hasAttribute
ret骨灰盒。
if(items[j]->text() == list1[j])
if(items[j]->text() == list1[i])