2

我有一个用 qt5.5 及以下版本编写的项目,它包含 qtdeclarative 模块,我正在尝试移植 qt5.5+,但我的项目使用的 qtdeclarative 模块已被删除。所以我添加了本文档所说的等价物,但成员被删除或移动到另一个类(setAttribute,viewport,setRenderHints,setViewportUpdateMode)所以我如何在我的 MainViewX 或 qt5.9+ 中使用这些成员我可以在没有的情况下使用 qtdeclarative显着改变mycode?

在此处输入图像描述

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

2 回答 2

0

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

有关详细信息,请参阅Qt 文档

于 2019-04-04T12:53:46.753 回答
0

这不是一个实际的答案,但我正在为项目删除并使用新的 qt 库。所以 qtdeclarative 问题不再相关。

于 2019-04-16T07:55:11.467 回答