首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将剪切、复制、粘贴快捷方式更改为Qt 5中的自定义槽。

将剪切、复制、粘贴快捷方式更改为Qt 5中的自定义槽。
EN

Stack Overflow用户
提问于 2015-02-25 09:57:16
回答 1查看 1.6K关注 0票数 3

目前,我正在编写一个编辑程序。我想为我的自定义函数分配三个快捷键(QKeySequence::Cut)、(QKeySequence::Copy)和(QKeySequence::and )。然而,它并不像我期望的那样起作用。

为了进行测试,我打开了来自QtCreator的“应用程序示例”。然后,我尝试禁用所有快捷键如下:

代码语言:javascript
复制
//cutAct->setShortcuts(QKeySequence::Cut);    
connect(cutAct, SIGNAL(triggered()), textEdit, SLOT(cut()));

copyAct = new QAction(QIcon(":/images/copy.png"), tr("&Copy"), this);
//copyAct->setShortcuts(QKeySequence::Copy);

connect(copyAct, SIGNAL(triggered()), textEdit, SLOT(copy()));

pasteAct = new QAction(QIcon(":/images/paste.png"), tr("&Paste"), this);
//pasteAct->setShortcuts(QKeySequence::Paste);

令人惊讶的是,快捷键仍然像以前一样工作。

另一个考验是:

  1. 将所有操作连接到自定义插槽。
  2. 将所有键序列分配给已经连接到我的自定义插槽的操作。

那么我的结果是

  1. 单击“剪切”、“复制”、“粘贴在工具栏上”转到我的自定义插槽。
  2. 快捷键与我的定制插槽独立工作。

欢迎任何建议。非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2015-02-27 03:03:50

由于Sigil的代码,我找到了重写默认快捷方式的方法。

我使用以下代码:

在标题中的一个新动作:

代码语言:javascript
复制
  QShortcut &m_Paste1;

然后,在类的构造函数中:

代码语言:javascript
复制
m_Paste1(*(new QShortcut(QKeySequence(QKeySequence::Paste), this, 0, 0, Qt::WidgetShortcut))),

最后,将其连接到您自己的插槽。

代码语言:javascript
复制
connect(&m_Paste1, SIGNAL(activated()), this, SLOT(paste()));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28715948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档