用户希望在外部文本编辑器中复制文本,并使用Mac上的QTableView
或“Control + v”热键将其粘贴到Command + v
。
我已经实现了跟踪每个用户键盘操作的keyPressEvent
。但是如何从剪贴板中获取pated数据?
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class View(QTableView):
def __init__(self):
super(View, self).__init__(parent=None)
def keyPressEvent(self, event):
if event.matches(QKeySequence.Copy):
print 'Ctrl + C'
if event.matches(QKeySequence.Paste):
print 'Ctrl + V'
QTableView.keyPressEvent(self, event)
app = QApplication([])
view = View()
view.show()
qApp.exec_()
答案 0 :(得分:3)
您必须使用班级QClipboard
的对象,在这种情况下,我们通过QApplication
获取该对象,以获取我们使用的文字QClipboard::text()
并粘贴我们使用的文字{{ 3}}
在你的情况下:
def keyPressEvent(self, event):
clipboard = QApplication.clipboard()
if event.matches(QKeySequence.Copy):
print('Ctrl + C')
clipboard.setText("some text")
if event.matches(QKeySequence.Paste):
print(clipboard.text())
print('Ctrl + V')
QTableView.keyPressEvent(self, event)