洞察探讨小游戏SDK接入的最佳实践以及对企业跨平台开发的优势
1284
2022-10-02
QT QPlainTextEdit复制粘贴功能的实现
我最近做了一个QT mindmap的项目,用了一下QPlainTextEdit,但是出现了不能复制的情况。实际上只需要舰艇Ctrl+c和Ctrl+x按键事件就行了。我的核心代码函数为:
void keyPressEvent(QKeyEvent* ev) Q_DECL_OVERRIDE { update(); if (isReadOnly() && ev->key() == Qt::Key_Space) { //禁止按空格键后编辑功能 setReadOnly(true); } else if (!isReadOnly() && ev->key() == Qt::Key_Escape) { setReadOnly(true); } else if (!isReadOnly() && ev->key() == Qt::Key_Tab) { setReadOnly(true); m_parent->keyPressEvent(ev); } else if (!isReadOnly() && ev->key() == Qt::Key_Return && (ev->modifiers() & Qt::ShiftModifier) == 0) { setReadOnly(true); m_parent->keyPressEvent(ev); }else if((ev->key() == Qt::Key_C || ev->key() == Qt::Key_X) && ev->modifiers() == Qt::ControlModifier){ //复制粘贴 copy(); } else if (!isReadOnly()) { QPlainTextEdit::keyPressEvent(ev); } else { m_parent->keyPressEvent(ev); } }
核心代码为:
else if((ev->key() == Qt::Key_C || ev->key() == Qt::Key_X) && ev->modifiers() == Qt::ControlModifier){ copy(); }
然后再复制QPlainTextEdit上的内容就能复制成功了。
参考文献
[1].qtQPlainTextEdit复制内容粘贴到excel中的问题. http://blog.sina.com-/s/blog_6b2dd2620102yvyp.html
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~