Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中.pdf

Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中

Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内 容到剪贴板中。 private: QAction *copyAct; private slots: void copyData(); ui-tableView-setSelectionMode(QAbstractItemView::ContiguousSelectio n); //设置为连续选择模式 ui-tableView-setContextMenuPolicy(Qt::ActionsContextMenu); //设置为 action菜单模式 ui-tableView-addAction(this-copyAct); //感觉复制多选的单元格,自己想的比较笨的办法,不知道是否还有更好的办法 void MainWindow::copyData() { int maxCol=0; int maxRow=0; int minCol=0; int minRow=0; QMapQString,QString map ; QModelIndexList indexes =ui-tableView-selectionModel()-selectedIndexes(); if (indexes.count()==0) { showmessage(QObject::tr(select nothing)); return; } QModelIndex index; int k=0; foreach(index, indexes) { int col=index.column(); int row=index.row(); if (k==0) { minCol=col; minRow=row; } if (colmaxCol)maxCol=col; if (rowmaxRow)maxRow=row; QString text = index.model()-data(index, Qt::EditRole).toString(); map[QString::number(row) + , + QString::number(col)]=text; k++; } QString rs=; for (int row=minRow;row=maxRow;row++) { for (int col=minCol;col=maxCol;col++) { if (col!=minCol)rs+=\t; rs+= map[QString::number(row) + , + QString::number(col)]; } rs+=\r\n; } QClipboard *board = QApplication::clipboard(); board-setText(rs); } 多选单元格的效果 鼠标右键选择 copy 复制出的内容如下: 28497 52393 12238 52652 15026 52698 17591 52753 22972 52865

您可能关注的文档

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档