Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从listWidget中选择并添加到textedit_C++_Xml_Qt_Parsing - Fatal编程技术网

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 var
I
)和一个内循环(counting var
j
),用来比较两个列表。对于外循环中的每个项目(
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])