PyQt5: pyuic5 - Неизвестный виджет Qt: QKeySequenceEdit - PullRequest
0 голосов
/ 03 января 2019

Создан пользовательский интерфейс с Qt Designer 5.11.1, и я добавил QKeySequenceEdit. Теперь пытаюсь преобразовать пользовательский интерфейс в .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>

1 Ответ

0 голосов
/ 03 января 2019

Кажется, что это ошибка, поэтому, если решение состоит в том, чтобы изменить 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 вместо >, поскольку иногда это вызывает проблемы во втором

pyuic5 app.ui -o appui.py -x
...