在Pyside程序中,我想在tableWidget中使用Ctrl + C进行复制。
我在QtDesigner中添加了一个捷径,但它不起作用。
在mainGui.py中
self.actionCopy.setShortcut(QtGui.QApplication.translate("mainDialog", "Ctrl+C", None, QtGui.QApplication.UnicodeUTF8))
我发现密钥是由重写的keyPressEvent捕获的(仅适用于Escape)。 它可以捕获单个“Key_Control”但无法捕获Ctrl + C. 以下是我的代码:
def keyPressEvent(self, event):
# Re-direct ESC key to closeEvent
print(event)
if event.key() == Qt.Key_Escape:
self.close()
elif event.key() == QKeySequence.Copy:
self.actionCopy.trigger()
如何让它捕获Ctrl + C或让它传递给QtDesigner的快捷方式
答案 0 :(得分:1)
此代码可读
if QKeySequence(event.key()+int(event.modifiers())) == QKeySequence("Ctrl+C"):
self.actionCopy.trigger()
答案 1 :(得分:0)
您不必覆盖keyPressEvent。你开始使用快捷方式,但我需要更多代码来告诉你哪里出错了。工作流程应为:
从Ctrl + C
将该操作与主要小部件的功能
在与Ctrl + C连接的主窗口小部件的功能中,您收集所需的所有信息并将它们放在剪贴板中。
但是,正如我所说,我需要更多代码,以便我能够发现问题。
更新:
在代码中的第68行之后,添加以下行:
self.tableWidget.addAction(self.actionCopy)
您还必须将操作添加到tableWidget
,而不仅仅是主窗口。