PyQt5:pyuic5 - 未知的 Qt 小部件:QKeySequenceEdit

Posted

技术标签:

【中文标题】PyQt5:pyuic5 - 未知的 Qt 小部件:QKeySequenceEdit【英文标题】:PyQt5: pyuic5 - Unknown Qt widget: QKeySequenceEdit 【发布时间】:2019-01-03 15:28:18 【问题描述】:

使用 Qt Designer 5.11.1 构建了一个 ui,我添加了一个 QKeySequenceEdit。现在尝试将 ui 转换为 .py,并收到以下错误。

PS C:\dev\app> pyuic5 app.ui > appui.py
Unknown Qt widget: QKeySequenceEdit

这只是一个带有键序列编辑的简单用户界面。

app.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <widget class="QKeySequenceEdit" name="keySequenceEdit">
    <property name="geometry">
     <rect>
      <x>150</x>
      <y>380</y>
      <width>113</width>
      <height>20</height>
     </rect>
    </property>
   </widget>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>800</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

【问题讨论】:

请分享你的.ui 已添加测试 .ui 文件。 @AQuick 这是一个错误。请在pyqt mailing list 上报告,以便正确修复。 【参考方案1】:

这似乎是一个错误,所以如果一个解决方案是修改 qtproxies.py 在我的情况下是 /usr/lib/python3.7/site-packages/PyQt5/uic/Compiler/qtproxies.py 并添加一行:

class QtWidgets(ProxyNamespace):
    # ...
    class QCommandLinkButton(QPushButton): pass
    class QKeySequenceEdit(QWidget): pass # add this line

    # Add all remaining classes.
    for _class in _qwidgets:
        if _class not in locals():
            locals()[_class] = type(_class, (QWidget, ), )

也建议你使用-o而不是&gt;,因为有时候会在秒出问题

pyuic5 app.ui -o appui.py -x

【讨论】:

以上是关于PyQt5:pyuic5 - 未知的 Qt 小部件:QKeySequenceEdit的主要内容,如果未能解决你的问题,请参考以下文章

使用 PyQt5 在 Qt Designer 中的自定义(升级)小部件中获取另一个小部件的当前值

无法在 Qt 设计器(macos)中显示自定义 PyQt5 小部件插件

PyQt5 - pyuic5 因 SIP 版本错误而失败

在 Ubuntu 14.04 中为 Python3.4 构建 PyQt5 的问题是由 qprinter.h 引起的,然后 pyuic5 错误

在 pyqt5 小部件中更新 matplotlib

QFormLayout的PyQt5顶行没有响应鼠标点击