做调查问卷的网站知乎,网站视频嵌入代码,网站建设方案样本,商标设计生成器在使用Qt模型视图框架的时候#xff0c;你可能会遇见这种情况#xff1a;给QTableView设置设置模型的时候#xff0c;网模型里面插入数据#xff0c;因为数据是一行一行插入的#xff0c;即要使用model的appandRow函数#xff0c;但有时候最后一行数据没有填满一行#…在使用Qt模型视图框架的时候你可能会遇见这种情况给QTableView设置设置模型的时候网模型里面插入数据因为数据是一行一行插入的即要使用model的appandRow函数但有时候最后一行数据没有填满一行但是没有填满的那一部分仍然可以点击如下代码
while(query.next()){ProductInfo info;info.number query.value(product_number).toString();info.kind static_castProductInfo::Kind(query.value(kind).toInt());info.title query.value(title).toString();info.description QJsonDocument::fromJson(query.value(description).toByteArray());info.classification QJsonDocument::fromJson(query.value(classification).toByteArray());info.image QJsonDocument::fromJson(query.value(image).toByteArray());info.description_image QJsonDocument::fromJson(query.value(description_image).toByteArray());QStandardItem* item new QStandardItem();item-setEditable(false);item-setData(QVariant::fromValue(info),Qt::UserRole 1);itemList.append(item);if(itemList.size() MAXCOLUMN){this-m_model-appendRow(itemList);itemList.clear();}
}
this-m_model-appendRow(itemList);
这就会造成隐藏的程序崩溃的风险如图
那么该如何解决这个问题以下为我的解决办法 if (!itemList.isEmpty()) {// 插入前禁用所有项for (size_t i itemList.size(); i MAXCOLUMN; i){QStandardItem* item new QStandardItem();item-setFlags(Qt::NoItemFlags);itemList.append(item);}}this-m_model-appendRow(itemList);return query.size();
思路就是将最后一行用无用项填满。。。OK,问题解决。