将qt5.5移植到qt5.9,删除了qtdeclarative模块

时间:2019-04-04 12:24:58

标签: qt qml porting qt5.5 qtdeclarative

我有一个用qt5.5及以下版本编写的项目,其中包含qtdeclarative模块,我正在尝试移植qt5.5 +,但我的使用qtdeclarative模块的项目已删除。因此,我按照本文档的说明添加了等效项,但成员被删除或移至另一个类(setAttribute,viewport,setRenderHints,setViewportUpdateMode),因此如何在MainViewX内或qt5.9 +中使用这些成员?大大改变mycode?

enter image description here

    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);

2 个答案:

答案 0 :(得分:0)

QtDeclarative自Qt 5.6起已删除。您必须在* .pro文件中添加QT += declarative,并包括头文件 QtDeclarative / QDeclarativeView

有关更多信息,请参见Qt documentation

答案 1 :(得分:0)

这不是一个实际的答案,但是我正在删除新的qt库并将其用于项目。因此,qtdeclarative问题不再相关。