2024-05-15 00:37:23 发布
网友
我正在寻找使用Python向程序添加函数的解决方案。我要复制和粘贴选定的数据(用鼠标选定)。
示例:
我的主要问题是如何使用选定的数据。但现在我可以复制代码中定义的字符串(这里是“tt”):
clipboard.OpenClipboard() clipboard.EmptyClipboard() clipboard.SetClipboardText('tt') clipboard.CloseClipboard()
我尝试了在网上和这个网站上找到的几个代码,但没有一个解决我的问题。
如果有人感兴趣,最后的代码是:
from eventbase import EventBase import win32clipboard as clipboard import os import wx class CopyEvent(EventBase): TYPE = wx.NewEventType() ID = wx.NewId() BINDER = wx.PyEventBinder(TYPE, 1) SHORTCUT_MODIFIER = wx.ACCEL_CTRL SHORTCUT_KEY = ord('C') def __init__(self, variable=None): EventBase.__init__(self) self._variable = variable def execute(self, viewmodel, parent): clipboard.OpenClipboard() clipboard.EmptyClipboard() text = self._convert_variable_to_text(self._variable) clipboard.SetClipboardText(text) clipboard.CloseClipboard() self.logger.info("Copying variable to clipboard") def _convert_variable_to_text(self, variable) : lines = [] lines.append("\t".join(variable.column_names)) for row_nbr in variable.row_numbers: lines.append("\t".join([repr(i) for i in variable.get_row_as_tuple(row_nbr)])) return os.linesep.join(lines)
您不需要调用clipboard.SetClipboardText()。当程序支持剪贴板时,则Ctrl+C会将当前选定的文本复制到剪贴板中。你不需要做任何事就可以做到这一点。
clipboard.SetClipboardText()
如果您的问题是“如何从程序外部触发Ctrl+C将当前选定的文本复制到剪贴板”,那么答案是:通常,您不能。出于安全原因,大多数程序不会响应其他程序发送的人工密钥事件。
第二个错误完全是另一个错误。类CopyEvent没有属性list,因此Python无法调用其中的方法。
CopyEvent
list
如果有人感兴趣,最后的代码是:
您不需要调用
clipboard.SetClipboardText()
。当程序支持剪贴板时,则Ctrl+C会将当前选定的文本复制到剪贴板中。你不需要做任何事就可以做到这一点。如果您的问题是“如何从程序外部触发Ctrl+C将当前选定的文本复制到剪贴板”,那么答案是:通常,您不能。出于安全原因,大多数程序不会响应其他程序发送的人工密钥事件。
第二个错误完全是另一个错误。类
CopyEvent
没有属性list
,因此Python无法调用其中的方法。相关问题 更多 >
编程相关推荐