У меня есть проект, написанный на qt5.5 и ниже, который содержит модуль qtdeclarative, я пытаюсь портировать qt5.5 +, но мой проект использует модуль qtdeclarative, который удален. Поэтому я добавил эквивалент, как сказано в этом документе, но члены удалены или перемещены в другой класс (setAttribute, viewport, setRenderHints, setViewportUpdateMode), так как я могу использовать эти члены внутри моего MainViewX или для qt5.9 + Могу ли я использовать qtdeclarative без значительно изменили мой код?
QQuickView *MainViewX;//QDeclarativeView *MainViewX;
QQmlEngine *EngineX;//QDeclarativeEngine *EngineX;
QQmlContext *ContextX;//QDeclarativeContext *ContextX;
QString QML_MainWindow;
#include <QQmlPropertyMap> //#include <QDeclarativePropertyMap>
#include <QTranslator>
MainWindow::MainWindow(QApplication *app, QWidget *parent,QTranslator * mtrans) :
QWidget(parent)
{
MainViewX = new QQuickView;//new QDeclarativeView;
EngineX = MainViewX->engine();
ContextX = MainViewX->rootContext();
Info = new InfoX(MainViewX);
QML_MainWindow = "qrc:qml/main.qml";
MainViewX->setSource(QML_MainWindow);
MainViewX->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing);
MainViewX->setAttribute(Qt::WA_OpaquePaintEvent); //Qt::WA_TranslucentBackground
MainViewX->setAttribute(Qt::WA_NoSystemBackground);
MainViewX->viewport()->setAttribute(Qt::WA_OpaquePaintEvent);
MainViewX->viewport()->setAttribute(Qt::WA_NoSystemBackground);
MainViewX->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);