我已经成功地从这个PyQt中尝试了code粘贴函数。然后,在init函数中,我对其进行了如下修改:
def __init__(self):
....
self.initShortcuts()
....这是带有initShortcuts快捷键并连接到从剪贴板粘贴到-QTableWidget函数的Ctrl+V函数的代码片段:
def initShortcuts(self):
self.shortcutPaste = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_V), self)
self.shortcutPaste.setContext(Qt.WidgetShortcut)
self.shortcutPaste.activated.connect(self.__handlePaste())
def __handlePaste(self):
clipboard = QtGui.QApplication.instance().clipboard().text()
rows = clipboard.split('\n')
numRows = len(rows) - 1
cols = rows[0].split('\t')
numCols = len(cols)
for row in xrange(numRows):
columns = rows[row].split('\t')
for col in xrange(numCols):
item = QTableWidgetItem(u"%s" % columns[col])
self.tblTransMatrix.setItem(row, col, item)
...但它给了我以下错误:
TypeError: connect() slot argument should be a callable or a signal, not 'NoneType'发布于 2014-04-12 18:19:27
您正在尝试将方法的返回值传递给connect,而此时您应该传递可调用的本身(即不带括号):
self.shortcutPaste.activated.connect(self.__handlePaste)https://stackoverflow.com/questions/23034010
复制相似问题