gpt4 book ai didi

c++ - 现有全屏模式后出现黑屏

转载 作者:行者123 更新时间:2023-12-02 10:23:26 25 4
gpt4 key购买 nike

我正在尝试做这样的事情:

  • 我有一个带有单个按钮的主窗口。
  • 按下此按钮后,所有屏幕上都会出现两个半透明窗口。它们处于全屏模式。
  • 4秒后屏幕消失。

  • 一切都好。但是当我点击其中一个屏幕时,在消失的过程中,它变成了完全黑色。我该如何解决?
    // main.qml

    import QtQuick 2.10
    import QtQuick.Window 2.10
    import QtQuick.Controls 2.2

    Window {
    id: main
    visible: true
    width: 100
    height: 50
    title: "Hello Splash World"

    Button {
    anchors.fill: parent
    text: "Show splash"
    onClicked: {
    for (var i = 0; i < Qt.application.screens.length; ++i) {
    var component = Qt.createComponent("SplashScreen.qml");
    var window = component.createObject(main, {screen: Qt.application.screens[i]});
    window.height = Qt.application.screens[i].height
    window.width = Qt.application.screens[i].width
    window.showSplash()
    }
    }
    }
    }

    // SplashScreen.qml

    import QtQuick 2.10
    import QtQuick.Controls 2.2

    ApplicationWindow {
    id: splash

    flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.WA_TranslucentBackground
    color: "transparent"

    Timer {
    running: true
    interval: 4000
    onTriggered: hideSplash()
    }

    function showSplash() {
    appearAnimation.start()
    }

    function hideSplash() {
    disappearAnumation.start()
    }

    background: Rectangle {
    id: bg
    color: "black"
    opacity: 0.8
    }

    SequentialAnimation {
    id: appearAnimation

    PropertyAction { target: splash; property: "visibility"; value: ApplicationWindow.FullScreen }
    NumberAnimation { target: bg; property: "opacity"; duration: 1000; to: 0.8 }
    }

    SequentialAnimation {
    id: disappearAnumation

    NumberAnimation { target: bg; property: "opacity"; duration: 2000; to: 0 }
    PropertyAction { target: splash; property: "visibility"; value: ApplicationWindow.Hidden }
    }
    }

    最佳答案

    在程序的进一步开发过程中,我遇到了一些重画问题。例如,更改主窗体的大小将导致黑色窗体。我发现的解决方案是使用OpenGL进行渲染。您可以通过插入以下代码来做到这一点:

    QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);

    关于c++ - 现有全屏模式后出现黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58696058/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com