gpt4 book ai didi

c++ - Qt Quick 画画很慢

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:21:17 26 4
gpt4 key购买 nike

我刚刚开始研究 Qt Quick,我有一个非常基本的程序,与启动 Qt Quick Controls 应用程序项目时基本相同。

问题是当我尝试调整窗口大小时需要很长时间才能完成。这可以在下面的 .gif 中看到。

Problem

我在网上能找到的关于遇到类似问题的人的唯一信息是,您可以使用 QML Profiler 找到产生延迟的位置,有时这是由于调试器造成的。所以在下面你可以看到 QML 分析器和 gif 是在 Release模式下记录的。

enter image description here

据我所知,动画正在锁定 GUI 线程,这导致渲染或重绘速度变慢,但我不确定是什么原因造成的。

对于解决问题的任何帮助,我将不胜感激。

而且没有太多的代码。

Test.pro

QT += qml quick
CONFIG += c++11
SOURCES += main.cpp
RESOURCES += qml.qrc
QML_IMPORT_PATH =
QML_DESIGNER_IMPORT_PATH =
DEFINES += QT_DEPRECATED_WARNINGS
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);

QQmlApplicationEngine engine;
engine.load(QUrl(QLatin1String("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;

return app.exec();
}

ma​​in.qml

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3

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

SwipeView {
id: swipeView
anchors.fill: parent
currentIndex: tabBar.currentIndex

Page1 {
Label {
text: qsTr("First page")
anchors.centerIn: parent
}
}

Page {
Label {
text: qsTr("Second page")
anchors.centerIn: parent
}
}

Page {
Label {
text: qsTr("Third page")
anchors.centerIn: parent
}
}
}

footer: TabBar {
id: tabBar
currentIndex: swipeView.currentIndex
TabButton {
text: qsTr("First")
}
TabButton {
text: qsTr("Second")
}
TabButton {
text: qsTr("Third")
}
}
}

Page1.qml

import QtQuick 2.7

Page1Form {
button1.onClicked: {
console.log("Button Pressed. Entered text: " + textField1.text);
}
}

Page1Form.ui.qml

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3

Item {
property alias textField1: textField1
property alias button1: button1

RowLayout {
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 20
anchors.top: parent.top

TextField {
id: textField1
placeholderText: qsTr("Text")
}

Button {
id: button1
text: qsTr("Press Me")
}
}
}

规范:Windows 10、Qt 5.9、MSVC 2017


Qt Forum Cross Post

最佳答案

最近这个 Qt Bug 被修复了,从 5.9.2 开始:https://bugreports.qt.io/browse/QTBUG-59893

此修复是否解决了这个问题?

关于c++ - Qt Quick 画画很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45176929/

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