QML 项目未呈现

Posted

技术标签:

【中文标题】QML 项目未呈现【英文标题】:QML items are not rendered 【发布时间】:2016-05-28 18:33:20 【问题描述】:

QML 的有趣问题。当我创建一个默认的 Qt Quick 应用程序并运行它时,我得到一个黑屏。窗口和其他项目根本不渲染。但是当我最小化它并再次将其返回到以前的状态时,就会呈现项目。那么有人知道这种问题吗? Before minimizing After minimizing

在一个非常相似的情况下(对于另一个用户),正在创建窗口,但没有呈现任何项目。在这种情况下,窗口完全是空白(白色)而不是黑色。 该系统是带有 Qt 5.15 的 Windows 10。此问题未出现在非 Windows 系统上。 (解决方案与OpenGL有关,详见下文。)

import QtQuick 2.5
import QtQuick.Window 2.2

Window 
    visible: true
    width: 500
    height: 500

    Rectangle 
        id: test
        width: 300
        height: 200
        color: "red"
        border.color: "black"
        border.width: 4
    
    
    Rectangle 
        width: test.width / 2
        height: test.height / 2
        color: "red"
        border.color: "black"
        border.width: 4
        anchors.centerIn: parent
    
        Rectangle 
            width: parent.width / 2
            height: parent.height / 2
            radius: width * 0.5
            //x: 200
            //y: 200
            color: "green"
            border.color: "darkgreen"
            border.width: 4
            anchors.left: parent.left
            anchors.bottom: parent.bottom
        
    

【问题讨论】:

它按预期对我有用(Windows 8 / Qt 5.6)。可能是显卡或 VM/OpenGL 问题。 根据我使用有问题的显卡和 Qt Quick 的经验,我可以建议使用以下标志或类似标志测试应用程序:QGuiApplication::setAttribute(Qt::AA_UseOpenGLES);。在加载 QML 之前在 C++ 中设置它。 【参考方案1】:

今天我发现了一个可能是您遇到的错误。如果我在 Windows 中启用了高对比度,那么应用程序根本不会刷新。我需要将其最小化并重新打开以查看更改。如果您启用了高对比度,请尝试禁用它。


更新:

对于某些人来说,只需将此行添加到项目的 main.cpp 就可以了:

QGuiApplication::setAttribute(Qt::AA_UseOpenGLES);

另一位用户报告说,该问题仅在装有 Qt 5.15 的 Windows 10 系统(虚拟机)上出现。在具有相同配置的 Ubuntu 20.04 系统上测试相同的代码时,它没有出现。

【讨论】:

以上是关于QML 项目未呈现的主要内容,如果未能解决你的问题,请参考以下文章

选择后 ComboBox QML 不显示项目文本

QML设计飘散效果

QML设计飘散效果

QML 错误:qrc:/Main.qml:24 模块“系统”未安装

项目符号列表未在 blogdown .rmd 文件中呈现

Qml - ReferenceError:屏幕未定义