Qt快速下拉菜单崩溃程序

Qt快速下拉菜单崩溃程序,qt,qml,qt5,qtquick2,Qt,Qml,Qt5,Qtquick2,最近我安装了Qt5.2。在玩过之后,我发现Qt Quick中大多数具有下拉功能(例如组合框、菜单栏项)的可视组件在我从中选择某个内容时会使程序崩溃。同样的事情也适用于我在5.1中运行的项目。我用谷歌搜索了这个问题,但没有找到有用的答案 我在ubuntu 12.04 64位上运行它。这是一个示例代码,当我使用菜单栏中的“File”项时,接收到SIGSEGV会崩溃,使用组合框时也会发生同样的情况 import QtQuick 2.0 import QtQuick.Controls 1.0 Appl

最近我安装了Qt5.2。在玩过之后,我发现Qt Quick中大多数具有下拉功能(例如组合框、菜单栏项)的可视组件在我从中选择某个内容时会使程序崩溃。同样的事情也适用于我在5.1中运行的项目。我用谷歌搜索了这个问题,但没有找到有用的答案
我在ubuntu 12.04 64位上运行它。这是一个示例代码,当我使用菜单栏中的“File”项时,接收到SIGSEGV会崩溃,使用组合框时也会发生同样的情况

import QtQuick 2.0
import QtQuick.Controls 1.0

ApplicationWindow {
    title: qsTr("Hello World")
    width: 640
    height: 480
    ComboBox {
        id: combo
        model: [1, 2, 3]
    }

    menuBar: MenuBar {
        Menu {
            title: qsTr("File")
            MenuItem {
                text: qsTr("Exit")
                onTriggered: Qt.quit();
            }
        }
    }

    Button {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }
}

更新: 这是堆栈

0   ??          0x21
1 QOpenGLContext::makeCurrent(QSurface*)/home/abo0ody/Qt5.2.0/5.2.0/gcc_64/lib/libQt5Gui.so.5 0x7ffff6482f4b
2 ?? /home/abo0ody/Qt5.2.0/5.2.0/gcc_64/lib/libQt5Quick.so.5 0x7ffff79a2dfc
3 ?? /home/abo0ody/Qt5.2.0/5.2.0/gcc_64/lib/libQt5Quick.so.5 0x7ffff79a30da
4 ?? /home/abo0ody/Qt5.2.0/5.2.0/gcc_64/lib/libQt5Quick.so.5 0x7ffff79a392e
5 ?? /home/abo0ody/Qt5.2.0/5.2.0/gcc_64/lib/libQt5Quick.so.5 0x7ffff79a3a92
6 ?? /home/abo0ody/Qt5.2.0/5.2.0/gcc_64/lib/libQt5Core.so.5 0x7ffff5d3bf38
7开始线程pthread创建.c308 0x7ffff4959e9a
8克隆克隆.S 112 0x7ffff54bc3fd
9??


我运行它的工具包被自动检测到,它的版本名为“Qt5.2.0 GCC 64位”,qmake位置为“/home/UserName/Qt5.2.0/5.2.0/GCC_64/bin/qmake”
我通过按运行按钮来正常运行它
g++版本是“g++(Ubuntu 4.8.1-2ubuntu1~12.04)4.8.1”。

更新: 下面是一个简单的main.cpp,默认情况下可以加载QML文件,或者从命令行获取一个参数,该参数指定要加载的QML文件的路径,正如Laszlo Papp所建议的那样。但对我来说,它仍然重复同样的错误

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickWindow>

int main (int argc, char *argv[])
{
    QString pathToMainQML = "qml/testdrop/main.qml"; // if no command line argument is specified this qml file will be used
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(argc > 1 ? argv[1] : pathToMainQML);
    QObject *topLevel = engine.rootObjects().value(0);
    QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);
    window->show();
    return app.exec();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
QString pathToMainQML=“qml/testdrop/main.qml”;//如果未指定任何命令行参数,将使用此qml文件
QGUI应用程序应用程序(argc、argv);
qqmlaplicationengine;
engine.load(argc>1?argv[1]:路径到inqml);
QObject*topLevel=engine.rootObjects().value(0);
QQuickWindow*window=qobject_cast(顶级);
窗口->显示();
返回app.exec();
}

这是Qt5.2中的一个错误,我已经报告过了。解决方法可以是在系统环境中设置环境变量“QSG_RENDER_LOOP=basic”。有关更多详细信息,请参阅和

如何运行此qml代码?它在哪里崩溃?你用调试器试过了吗?你能用一个简单的main.cpp加载你的qml并从命令行试一下吗?我更新了帖子中的信息来回答@LaszloPapp的问题