小编Han*_*862的帖子

QQuickView新删除类型不匹配

使用g ++ -fsanitize = address进行编译时,出现了new-delete-type-mismatch。此代码是否错误?还是这是Qt错误?

我在一个大型应用程序中找到了它,并将其分解为以下代码。我想用QQuickView从C ++显示一个QML项目。但是QQuickView的Destructor中似乎有一个问题。

test.pro:

TEMPLATE = app
TARGET = test
QT += core gui widgets quick

SOURCES += test.cpp

QMAKE_CXXFLAGS += -fsanitize=address
QMAKE_LFLAGS += -fsanitize=address
Run Code Online (Sandbox Code Playgroud)

test.cpp:

#include <QApplication>
#include <QQuickView>
#include <QQuickItem>

int main( int argc, char *argv[] ) {
    QApplication app ( argc, argv );

    QQuickView view;
    view.setSource(QUrl::fromLocalFile("test.qml"));
    view.show();

   return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

test.qml:

import QtQuick 2.4

Item {
    id: item1
    anchors.fill: parent

    Rectangle {
        id: rectangle
        color: "#fba4e3"
        anchors.fill: parent
    }
}
Run Code Online (Sandbox Code Playgroud)

编译:

$ qmake-qt5 …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qquickview

5
推荐指数
1
解决办法
277
查看次数

标签 统计

c++ ×1

qml ×1

qquickview ×1

qt ×1