查看完整版本: [-- Qt5 QClipboard问题 --]

QTCN开发网 -> Qt基础编程 -> Qt5 QClipboard问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

kongxz 2020-08-31 17:41

Qt5 QClipboard问题

功能是手动实现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 2020-09-01 13:50
复制时写到剪切板的数据格式不是纯文本,重新处理复制动作就应可以。

kongxz 2020-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也不行


查看完整版本: [-- Qt5 QClipboard问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled