• 3378阅读
  • 2回复

[提问]Qt5 QClipboard问题 [复制链接]

上一主题 下一主题
离线kongxz
 

只看楼主 倒序阅读 楼主  发表于: 2020-08-31
功能是手动实现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.
离线flyer_2001

只看该作者 1楼 发表于: 2020-09-01
复制时写到剪切板的数据格式不是纯文本,重新处理复制动作就应可以。
离线kongxz

只看该作者 2楼 发表于: 2020-09-04
要疯了,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也不行
快速回复
限100 字节
 
上一个 下一个