3 秒后所有 QT Quick Application 崩溃

Posted

技术标签:

【中文标题】3 秒后所有 QT Quick Application 崩溃【英文标题】:All QT Quick Application crash after 3 seconds 【发布时间】:2018-08-10 12:21:45 【问题描述】:

我可以很好地运行样板 QT 快速应用程序(空项目) - 窗口显示并且不会崩溃。如果我然后用一些简单的控件更新 QML 并运行应用程序,它会显示窗口 3 秒然后崩溃。当我运行示例 QT Quick 应用程序项目时也会出现此问题。

应用程序输出窗口显示:

程序意外结束。 进程被强行结束。

出了什么问题,我该如何解决?

信息:

我在 Windows 10 64bit 上,使用 QT Creator,使用 QMake 的项目和允许的最小 QT 版本是 5.9

我正在使用 Desktop QT 5.11.1 MSVC2017 64bit 在调试模式下进行编译。注意我无法在任何其他设置(MSVC2015,MinGW)中编译 - 我收到错误。如果我在发布模式下编译,我仍然会遇到同样的崩溃。

Desktop QT 5.11.1 MSVC2017 64bit 旁边确实有一个感叹号No debugger setup

以下 QML 有效:

import QtQuick 2.11
import QtQuick.Window 2.11

Window 
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

这会导致它崩溃:

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3

ApplicationWindow 
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    menuBar: MenuBar 
        Menu 
            title: 'File'
        
    

    header: ToolBar 
        RowLayout 

        
    

    TextArea 
        id: area
        anchors.fill: parent
    

【问题讨论】:

出于好奇,设置QT_OPENGL=angle 有帮助吗?此外,您需要获得回溯。我不确定打包的 Qt 是如何做到的……如果它没有附带调试符号,你需要自己构建 Qt。 我遇到了和你一样的问题(连我的环境都和你一样),你解决了吗?但是,我之前在相同的环境下没有问题,直到我通过离线包重新安装了QT。对了,QT 5.11.2 MSVC2017 64bit,同落。 我发现那是因为安装了Qt Virtual Keyboard,然后创建一个Qt Quick项目并选中'Use Qt Virtual Keyboard'。运行然后崩溃。我不知道为什么,我是QML新手,可能一系列操作改变环境。 @Mitch 打电话,需要你的帮助。我做了一些尝试,这是必须的。 【参考方案1】:

我也遇到了这个崩溃,窗口上只有一个矩形。

对我来说,通过在实例化我的 QGuiApplication 之前添加以下行来修复崩溃:

QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);

从文档中,在 windows 上,这告诉 qt 使用角度。 Angle是将opengl翻译成directx的驱动程序

您可以阅读更多关于不同驱动程序选项的信息 http://doc.qt.io/qt-5/windows-requirements.html

【讨论】:

我们可以认为这是 Qt 的错误吗?

以上是关于3 秒后所有 QT Quick Application 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

QT5.3.1 Quick 开发 --- 项目类型的选择(转)

Qt_Quick开发实战精解_3

《Qt Quick 4小时入门》学习笔记2

由于找不到qt5quick.dll,无法继续执行代码。重新安装程序可能会解决此问题,不知道怎么解决跪求大神帮忙

Qt和Qt Quick QML,

windows用windeployqt发布qt quick application程序