意外类型“QKeySequence”

问题描述

我在一个名为 EditName 的类中包含此代码,该类从 PyQt5 的 ui 文件继承 Ui_MainWindow

class EditName(Ui_MainWindow):
def __init__(self,window):
    self.setupUi(window)

    QShortcut(
        QKeySequence('Ctrl+1'),self).activated.connect(lambda: self.ComboEditType.setCurrentIndex(0))

当我运行此代码时,它会产生以下错误。我进行了搜索,但没有找到解决错误的任何方法

TypeError: arguments did not match any overloaded call:
  QShortcut(QWidget): argument 1 has unexpected type 'QKeySequence'
  QShortcut(Union[QKeySequence,QKeySequence.StandardKey,str,int],QWidget,member: PYQT_SLOT = 0,ambiguousMember: PYQT_SLOT = 0,context: Qt.ShortcutContext = Qt.WindowShortcut): argument 2 has unexpected type 'EditName'

解决方法

解决办法是用window替换self,因为window是一个widget而self不是。

class EditName(Ui_MainWindow):
    def __init__(self,window):
        self.setupUi(window)

        QShortcut(
            QKeySequence('Ctrl+1'),window).activated.connect(
                lambda: self.ComboEditType.setCurrentIndex(0))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...