0

insertRow()可以使用of插入的行数是否有限制QTableWidget Class

在我的程序中,我增加一个变量,比如 count,然后使用语句insertRow(count)。如果count <= 500. 如果count > 500,代码停止运行。我在MSVS2013.

编辑:添加代码

    QXmlStreamReader xs(ba);
    int i=-2;
    QTableWidgetItem* titem=NULL;

    QStringList qslHeaders;
    map < QString, pair<QString, QString >> HeaderMap;
    int map_index = 0;
    int col_count_set = 0;
    map<QString, pair<QString, QString>>::iterator iter;
    while (!xs.atEnd())
    {
        bool flag = true;
        ++i;
        if (xs.readNextStartElement() && xs.name().toString() == "ROW")
        {
            insertRow(i);
            while (flag)
            {
                switch (xs.readNext())
                {
                case QXmlStreamReader::StartElement:
                {
                    QString name = xs.name().toString();

                    //Insert data to map here
                }
                break;

                case QXmlStreamReader::EndElement:
                    if (xs.name().toString() == "ROW")
                    {
                        map_index = 0;
                        if (HeaderMap.size()>0 && col_count_set == 0)
                        {
                            setColumnCount(HeaderMap.size());
                            col_count_set++;
                        }
                        iter = HeaderMap.begin();
                        while (iter != HeaderMap.end())
                        {
                            titem = new QTableWidgetItem(iter->second.first);
                            setItem(i, map_index, titem);
                            iter++;
                            map_index++;
                        }
                        flag = false;
                    }
                    break;
                default:
                    break;
                }
            }
        }
        // WRITTEN FOR DEBUGGING
        if (i > 501)
            break;
       // DEBUG
    }
    iter = HeaderMap.begin();
    while (iter != HeaderMap.end())
    {
        if (!qslHeaders.contains(iter->second.second))
        {
            qslHeaders.append(iter->second.second);
        }
        iter++;
    }
    setHorizontalHeaderLabels(qslHeaders);
4

0 回答 0