我有用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);
自Qt 5.6以来,QtDeclarative已被删除。您必须在* .pro文件中添加QT += declarative
并包含头文件QtDeclarative / QDeclarativeView。
有关更多信息,请参阅Qt documentation。
这不是一个实际的答案,但我正在删除和使用新的qt库项目。所以qtdeclarative问题不再相关。