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
而不是>
,因为有时候会在秒出问题
pyuic5 app.ui -o appui.py -x
【讨论】:
以上是关于PyQt5:pyuic5 - 未知的 Qt 小部件:QKeySequenceEdit的主要内容,如果未能解决你的问题,请参考以下文章
使用 PyQt5 在 Qt Designer 中的自定义(升级)小部件中获取另一个小部件的当前值
无法在 Qt 设计器(macos)中显示自定义 PyQt5 小部件插件
在 Ubuntu 14.04 中为 Python3.4 构建 PyQt5 的问题是由 qprinter.h 引起的,然后 pyuic5 错误