Menu PyQt:自定义小部件的全局复制/粘贴操作

Menu PyQt:自定义小部件的全局复制/粘贴操作,menu,pyqt,pyqt4,copy-paste,custom-widgets,Menu,Pyqt,Pyqt4,Copy Paste,Custom Widgets,我正在编写一个工具,它有一个大的自定义文本区域小部件和许多其他文本输入小部件,等等。我目前正在向我的工具中添加复制/粘贴,并且在全局级别上遇到了问题,即我不想在每个需要它的小部件中实现本地复制/粘贴。对于Qt标准的小部件,只需将copy/paste与Ctrl+C/Ctrl+V一起使用就可以了,但当然,对于我的自定义小部件,我必须手动实现它 但是菜单栏中的复制/粘贴操作呢?我是否必须将它们连接到程序中存在的每个小部件,或者是否有更好的内置方式来实现这一点?我更愿意将菜单操作连接到某个全局复制/粘贴

我正在编写一个工具,它有一个大的自定义文本区域小部件和许多其他文本输入小部件,等等。我目前正在向我的工具中添加复制/粘贴,并且在全局级别上遇到了问题,即我不想在每个需要它的小部件中实现本地复制/粘贴。对于Qt标准的小部件,只需将copy/paste与Ctrl+C/Ctrl+V一起使用就可以了,但当然,对于我的自定义小部件,我必须手动实现它


但是菜单栏中的复制/粘贴操作呢?我是否必须将它们连接到程序中存在的每个小部件,或者是否有更好的内置方式来实现这一点?我更愿意将菜单操作连接到某个全局复制/粘贴处理程序,该处理程序会自动通知处于焦点的小部件。

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

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


有些类,如和,提供了对集中式信号处理的支持,但使用显式的一对一连接通常要简单得多。

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

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


有一些类,如和,提供了对集中信号处理的支持,但坚持明确的一对一连接通常要简单得多。

为什么必须重新实现复制/粘贴?当然,您的自定义小部件只是Qt文本输入小部件的子类。不,不幸的是,出于性能原因,我的小部件是一个扩展的QabStretchScrollArea。我自己渲染内容,以便能够查看非常大的数据量。据我所知,这个组件不支持复制/粘贴。为什么要重新实现复制/粘贴?当然,您的自定义小部件只是Qt文本输入小部件的子类。不,不幸的是,出于性能原因,我的小部件是一个扩展的QabStretchScrollArea。我自己渲染内容,以便能够查看非常大的数据量。据我所知,这个组件不支持复制/粘贴。