Как добавить QWebEngineView в дизайнер Qt Creator-а?

Проблема заключается в том, что не могу добавить элемент класса QWebEngineView в дизайнере Qt Creator. Там(в дизайнере) такого класса просто не существует. Его можно добавить только через свой программный код, иначе у меня не получаеться


Ответы (2 шт):

Автор решения: Ariox

Можно загружать .ui динамически через QUiLoader, переопределив метод createWidget, при обработке можно заменять стандартные виджеты или добавлять новые. Для добавления нового в .ui нужно создать виджет, нажать на нем правой кнопкой и выбрать "преобразовать", или что-то вроде того. Должна появиться таблица, в которую можно добавить имя класса, которое будет обрабатываться загрузчиком.

Можно вместо этого использовать QML, в котором есть WebEngineView, заодно получите и все достоинства QML.

И можно создать QML, состоящий из одного WebEngineView, и добавить его в .ui через QQuickWidget.

На практике, использование QUiLoader - это единственный оправданный способ использования ui, при использовании в качестве генератора c++ классов получается очень неудобный в поддержке код, проще и удобнее сразу писать на c++, особенно если реализовать простой builder для Layout. Что-то вроде такого:

makeVBox()
    .add(makeVBox().aligment(Qt::AlignHCenter).add(new QLabel(tr(header))))
    .add(addHBox()
            .add(makeContent())  
            .add(makeMenu())   
    ) 
    .bindTo(this); // this->setLayout(...)
→ Ссылка
Автор решения: magrif

Помещаете на форму обычный QWidget. Открываете ui в текстовом редакторе и ищите строчку <widget class="QWidget" name="someWidgetName">. Меняете QWidget на QWebEngineView. Сохраняете, перезагружаете ui.

Также советую ознакомиться с возможностью преобразования стандартных виджетов в виджеты, реализованные в коде. Нажать левой кнопкой по виджету и выбрать Преобразовать в....

→ Ссылка