Кажется, что это ошибка PyQt5, которая не распознает класс QFontDatabase, на данный момент обходной путь состоит в устранении следующих строк:
<property name="writingSystem">
<enum>QFontDatabase::Any</enum>
</property>
Итак, выполняя команду:
pyuic5 demoFontComboBox.ui -o demoFontComboBox.py -x
Вы получаете следующее:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'demoFontComboBox.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(500, 240)
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(30, 50, 81, 17))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(30, 90, 81, 17))
self.label_2.setObjectName("label_2")
self.fontSelect = QtWidgets.QFontComboBox(Dialog)
self.fontSelect.setGeometry(QtCore.QRect(120, 40, 291, 25))
self.fontSelect.setObjectName("fontSelect")
self.textEdit = QtWidgets.QTextEdit(Dialog)
self.textEdit.setGeometry(QtCore.QRect(120, 80, 291, 101))
self.textEdit.setObjectName("textEdit")
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Select font"))
self.label_2.setText(_translate("Dialog", "Type text"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
Все еще работает над патчем для pyqt5.
Решение состоит в том, чтобы зарегистрировать класс QFontDatabase в PyQt5 / uic / Compiler / qtproxies.py:
# ...
class QtGui(ProxyNamespace):
class QIcon(ProxyClass):
class fromTheme(ProxyClass): pass
class QConicalGradient(ProxyClass): pass
class QLinearGradient(ProxyClass): pass
class QRadialGradient(ProxyClass): pass
class QBrush(ProxyClass): pass
class QPainter(ProxyClass): pass
class QPalette(ProxyClass): pass
class QFont(ProxyClass): pass
class QFontDatabase(ProxyClass): pass # <--- add this line
# ...