Qml在无帧QQuickView(QtQuick2)中的动画上闪烁
Qml flicker on animation in frameless QQuickView (QtQuick2)
main.cpp
#include <QGuiApplication>
#include <QQuickView>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQuickView *view= new QQuickView;
view->setFlags(Qt::Tool|Qt::WindowStaysOnTopHint|Qt::FramelessWindowHint);
view->setColor(Qt::transparent);
view->show();
view->setSource(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
QML文件:
import QtQuick 2.0
Rectangle {
width: 100
height: 100
color: "#80808080"
Rectangle {
width: 10
height: 10
anchors.centerIn: parent
RotationAnimation on rotation {
duration : 15000
easing.type: Easing.Linear
loops: Animation.Infinite
from: 0
to: 360
}
}
}
透明背景闪烁,但仅带有动画。这个例子很基础,那么问题出在哪里呢?
简短回答:将环境变量设置为 QSG_RENDER_LOOP=基本
长答案:我不知道确切的内部结构。当设置QSG_RENDER_LOOP=线程时,Qmlscene 由多个线程渲染。但某些驱动程序无法呈现流畅的动画。因此,对于未经测试的系统(x11,mesa),最初QSG_RENDER_LOOP设置为基本。由于 5.5 线程是默认值。
尝试 "view->setFlags(Qt::SplashScreen)"也许可以解决此问题,但无法调整窗口大小和移动窗口。这没有意义,但确实如此。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 处理闪烁窗口事件
- 使用 GLUT 使用键停止动画?
- 如何避免LED在循环状态变化中闪烁?
- 使用对象数组对 SFML 进行动画处理
- (SFML)按下键时,播放器构造函数未使用正确的动画进行更新
- 如何减慢从 BVH 文件读取的 opengl 动画?
- 如何检测是否在缓冲绘画动画中绘制最后一帧?
- 从精灵表在 sfml 中为精灵制作动画
- ExtTextOut 文本的持续闪烁,在一段时间后,文本将恢复为默认字体
- Qt3D 骨骼动画
- ASCII 旋转光标 (TUI) 动画出现问题
- 带有 std::cout 的多线程控制台文本动画
- 有没有办法像动画一样移动控制台窗口?
- 围绕特定轴对 qt3d 旋转进行动画处理
- 为什么在使用VK_PRESENT_MODE_FIFO_KHR呈现模式调整交换链图像大小时出现白色闪烁
- 如何在Qt中设置围绕固定点的线的动画
- 如何在qt中显示闪烁的[动画]红色/绿色状态图标
- Qml在无帧QQuickView(QtQuick2)中的动画上闪烁
- 简单的动画会导致c++中的屏幕闪烁