首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyQt粘贴功能TypeError激活QShortcut

PyQt粘贴功能TypeError激活QShortcut
EN

Stack Overflow用户
提问于 2014-04-12 17:49:06
回答 1查看 170关注 0票数 1

我已经成功地从这个PyQt中尝试了code粘贴函数。然后,在init函数中,我对其进行了如下修改:

代码语言:javascript
复制
def __init__(self):
  ....
  self.initShortcuts()
  ....

这是带有initShortcuts快捷键并连接到从剪贴板粘贴到-QTableWidget函数的Ctrl+V函数的代码片段:

代码语言:javascript
复制
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)
  ...

但它给了我以下错误:

代码语言:javascript
复制
TypeError: connect() slot argument should be a callable or a signal, not 'NoneType'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-12 18:19:27

您正在尝试将方法的返回值传递给connect,而此时您应该传递可调用的本身(即不带括号):

代码语言:javascript
复制
    self.shortcutPaste.activated.connect(self.__handlePaste)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23034010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档