标题:Qt5 QClipboard问题
作者:kongxz
日期:2020-08-31 17:41
内容:
功能是手动实现tableview的复制剪切粘贴,并且和excel的通用。所以数据用
QClipboard *clipboard = QApplication::clipboard();
clipboard->setText(strCopy);
的方式存进了粘贴板。
现在的问题是偶现从tableview复制完之后,粘贴的时候只会在tableview选中格粘贴最后一个数据,(多行多列偶现,单行或者单列的时候必现)
QString strPaste = clipboard->text();的时候获取到的就剩最后一个数据了。而从excel复制过来的数据没有这个问题,qdebug确认过复制的数据一致
调试时输出框偶尔回有提示
Data set on unsupported clipboard mode. QMimeData object will be deleted.
#1 [flyer_2001 09-01 13:50]
复制时写到剪切板的数据格式不是纯文本,重新处理复制动作就应可以。
#2 [kongxz 09-04 15:01]
要疯了,excel数字数据存到tableview,
pModel->setData(pModel->index(nRow, nColumn++), strItem.toDouble(), Qt::EditRole);
以
double nData = pModel->index(i, j).data(Qt::EditRole).toDouble();
取出来转字符串放进QClipboard没问题,以
pModel->setData(pModel->index(nRow, nColumn++), strItem, Qt::EditRole);
QString strData = pModel->index(i, j).data(Qt::EditRole).toString();
方式存取就是不行
但是double格式在tableview里又有科学计数法显示的问题...
更坑的是Qt::DisplayRole存QString,Qt::EditRole存double也不行