当前位置: 首页 > news >正文

做时时彩网站赚钱郴州网络推广外包公司

做时时彩网站赚钱,郴州网络推广外包公司,互联网电子商务网站开发技术,企业形象设计毕业论文问题描述:区分 QTableWidget 类的 clear() 和 clearContents() 的用法,以及可能由于这两个方法使用不当导致程序崩溃的原因分析 Qt 官方文档对 QTableWidget 类的 clear() 方法描述如下: [slot] void QTableWidget::clear() Removes all ite…

问题描述:区分 QTableWidget 类的 clear() 和 clearContents() 的用法,以及可能由于这两个方法使用不当导致程序崩溃的原因分析

Qt 官方文档对 QTableWidget 类的 clear() 方法描述如下:

[slot] void QTableWidget::clear()
Removes all items in the view. This will also remove all selections and headers. If you don't want to remove the headers, use QTableWidget::clearContents(). The table dimensions stay the same.

翻译过来就是,clear() 函数会删除表格中的所有单元格,也会删除选中的部分和表头,但不会改变原先设置的行数和列数

Qt 官方文档对 QTableWidget 类的 clearContents() 方法描述如下:

[slot] void QTableWidget::clearContents()
Removes all items not in the headers from the view. This will also remove all selections. The table dimensions stay the same.

翻译过来就是,clearContents() 函数会删除表格中的所有单元格,也会删除选中的部分,但不会删除表头,也不会改变原先设置的行数和列数

clear() 和 clearContents() 的相同点在于都会删除表格中的所有单元格,也会删除选中的部分,并且保持原先设置的行数和列数不变,区别在于 clear() 会删除表头,clearContents() 不会删除表头

在程序中如果对 clear() 和 clearContents() 方法调用不当,将会导致程序崩溃,究其原因在于这两个方法删除了表格中的所有单元格,导致了空指针,如果对空指针进行操作,将会使得程序崩溃

void clearTable()
{table->clear();      // 或者 table->clearContents()
}void setTableText(QVector<QStringList> textSL)
{for(int i=0; i<textSL.size(); i++){QStringList sl = textSL.at(i);for(int j=0; j<sl.size(); j++){table->item(i,j)->setText(sl.at(j));} }    
}

先下结论,上述代码会导致程序崩溃!!!

上述代码逻辑我们在程序中经常使用,clearTable() 函数清空表格内容,setTableText() 为表格所有单元格再赋新值。程序崩溃的原因在于 clear() 和 clearContents() 删除了表格中的所有单元格,导致了 table->item(i,j) 空指针,再调用 setText() 函数导致程序崩溃

为了解决上述空指针问题,需对代码进行修改,即清空内容的时候不要删除单元格,或者在调用单元格函数的时候先判断指针是否为空,如果为空,则为该单元格创建一个 QTableWidgetItem

方法1:清空内容的时候不要删除单元格

void clearTable()
{for(int i=0; i<table->rowCount(); i++){for(int j=0; j<table->columnCount(); j++){table->item(i,j)->setText("");}}
}void setTableText(QVector<QStringList> textSL)
{for(int i=0; i<textSL.size(); i++){QStringList sl = textSL.at(i);for(int j=0; j<sl.size(); j++){table->item(i,j)->setText(sl.at(j));} }    
}

方法2:在调用单元格函数的时候先判断指针是否为空,如果为空,则为该单元格创建一个 QTableWidgetItem 

void clearTable()
{table->clearContents();
}void setTableText(QVector<QStringList> textSL)
{for(int i=0; i<textSL.size(); i++){QStringList sl = textSL.at(i);for(int j=0; j<sl.size(); j++){if(!table->item(i,j)){QTableWidgetItem * item = new QTableWidgetItem;table->setItem(i,j,item);}table->item(i,j)->setText(sl.at(j));} }    
}
http://www.dinnco.com/news/45967.html

相关文章:

  • 河南网站建设推广公司互联网平台推广怎么做
  • 南阳做网站公司哪家好上海网站优化
  • wordpress封装小程序网站google搜索优化
  • 在手机上创建网站seo的研究对象
  • 酒泉网站建设平台seo课程培训
  • 网站版权 备案icp站长聚集地
  • 智慧团建网站官网入口登录百度seo提高排名费用
  • 哔哩哔哩b站在线看免费百度框架户开户渠道代理
  • 网址导航类网站如何做推广网站提交收录软件
  • 营销网站制作图片国外网站排名前十
  • 哈尔滨优质官网建站企业重庆seo网络优化咨询热线
  • 个人网站建站源码单页网站模板
  • 长春 房地产网站建设武汉大学人民医院东院
  • 做网站难不难盐城seo优化
  • 租车网站系统规划荆州百度推广
  • php企业网站程序南阳seo
  • 电子商务网站建设个人总结网络推广费用
  • wordpress fb主题seo技术分享博客
  • 如何做 试题类 网站seo在线推广
  • 岳麓做网站的公司如何优化推广网站
  • 天津西青区邮政编码免费关键词优化工具
  • 做美食的网站有那一些百度指数功能有哪些
  • 做网站靠什么收入免费推广途径
  • 渭南微信小程序网站建设注册域名
  • 张云网站建设百度客服电话4001056
  • b2c电商网站最好用的免费建站平台
  • java高端网站建设湖北网络推广公司
  • 研发地网站建设网络推广引流是做什么的
  • seo与网站优化品牌营销策略论文
  • 做胃肠医院网站行业关键词