1. Накидал код, работает (долго было запускать креатор, поэтому на питоне)
C++ (Qt)
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
if __name__ == '__main__':
app = QApplication([])
fdbShrifti = QFontDatabase()
m_pslmShrift = QStringListModel()
m_pslmShrift.setStringList(fdbShrifti.families())
listView = QListView()
listView.setModel(m_pslmShrift)
listView.show()
index = m_pslmShrift.match(m_pslmShrift.index(0, 0), Qt.DisplayRole, 'Arial')[0]
listView.setCurrentIndex(index)
app.exec()
2. Тут 2 варианта:
* Оставляете место в UI для того виджета, после добавляете в конструкторе класса (наверное это MainWindow)
* Помещаете виджет на UI, правой кнопкой и тыкаете на "Преобразовать в..." после нужно выбрать тот виджет с переопределенным paintEvent'ом
В общем, тот виджет в любом случае делать нужно будет