【问题标题】:Unexpected type 'QKeySequence' [closed]意外类型'QKeySequence'[关闭]
【发布时间】:2021-09-07 06:08:09
【问题描述】:

我在一个名为 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'

【问题讨论】:

  • 请注意,不建议对由 pyuic 创建的表单类进行子类化。阅读有关using Designer 的更多信息。

标签: python pyqt5 qkeysequence qshortcut


【解决方案1】:

解决办法是把self换成window,因为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))

【讨论】:

    猜你喜欢
    • 2013-02-19
    • 2015-12-11
    • 1970-01-01
    • 2014-01-27
    • 2021-11-17
    • 2013-06-30
    • 2016-04-02
    • 2019-01-31
    • 2014-03-14
    相关资源
    最近更新 更多