1

我正在编写一个工具,它有一个大的自定义文本区域小部件和许多其他文本输入小部件等。我目前正在向我的工具添加复制/粘贴,并陷入了如何在全球范围内做到这一点- 即我不想在每个需要它的小部件中本地实现复制/粘贴。对于 Qt 标准小部件,它只能通过 Ctrl+C/Ctrl+V 使用复制/粘贴,但当然我必须为我的自定义小部件手动实现它。

但是菜单栏中的复制/粘贴操作呢?我是否必须将它们连接到我的程序中存在的每个小部件,或者是否有更好的内置方法来做到这一点?如果我可以将菜单操作连接到一些自动通知焦点小部件的全局复制/粘贴处理程序,我会更喜欢。

4

1 回答 1

0

没有通用的复制/粘贴功能 - 对于自定义小部件,您必须自己实现所有内容。QClipboard类提供对系统剪贴板的访问。每个应用程序都有一个剪贴板对象,可以通过QApplication.clipboard()或访问qApp.clipboard()

标准的 Qt 输入小部件都定义了自己的copy()插槽paste(),可以连接到菜单操作、工具栏按钮、键盘快捷键等。因此,您的自定义小部件可能应该定义相同的界面。

有诸如QActionGroupQButtonGroupQSignalMapper 之类的类提供对集中式信号处理的支持,但坚持显式的一对一连接通常要简单得多。

于 2016-11-10T17:40:39.813 回答