QQuickView - 无延迟/滞后地调整内容大小

2023-12-20

图像通常是解释某事的最简单方法,这是我遇到的问题的一个小屏幕截图:

如果您查看窗口的右侧,您可以看到内容大小的调整有明显的滞后/延迟。这是一个在很多应用程序中都会发生的问题,但我想知道是否有办法在 Qt 应用程序中使用QQuickView和 QML 内容。

基本上我的应用程序是这样创建的:

QQuickView view;
view.resize(400, 200);
view.setResizeMode(QQuickView::ResizeMode::SizeRootObjectToView);
view.setSource(...);

QML 的内容只是一个带有 2 个矩形的项目,用于突出显示问题。

Edit:这是 QML 文件的简化版本(是的,简化版本也遇到同样的问题;p)

import QtQuick 2.12
Item {
    Rectangle {
        color: "black"
        anchors { fill: parent; margins: 10 }
    }
}

Edit2:通过以下方式运行这个小 QML 片段qmlscene可执行文件也显示出相同的延迟/滞后。

Edit3:同样的问题发生在某些 Linux 发行版上,但在其他发行版上则不然:在我的 Ubuntu 上它工作正常,但在我的 CentOS 7 上显示与 Windows 上相同的延迟/故障。两个 Qt 版本都是 5.12.3。在旧的 OSX 上它工作得很好(在 Qt 5.9 上测试)我现在真的迷路了 ^^

有什么办法可以防止这种延迟吗?该解决方案可能是特定于平台的,因为问题似乎来自于在 Qt 有可能获取事件之前调整本机帧大小的事实,因此内容会以 1 帧延迟调整大小......但我会想知道是否有人知道如何处理这个问题?

任何帮助或指示表示赞赏:)

问候, 达米安


正如您在更新中提到的 - 内容大小调整时有 1 帧延迟。 有一个非常简单的技巧可以解决这个问题。 使用nativeEventFilter,处理 WM_NCCALCSIZE 与 pMsg->wParam == TRUE 并从顶部或底部删除 1px。

if( pMsg->message == WM_NCCALCSIZE and pMsg->wParam == TRUE )
{
    LPNCCALCSIZE_PARAMS szr = NULL;
    szr = reinterpret_cast<LPNCCALCSIZE_PARAMS>( pMsg->lParam );
    if( szr->rgrc[0].top != 0 )
    {
        szr->rgrc[0].top -= 1;
    }
}

问候,安东

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QQuickView - 无延迟/滞后地调整内容大小 的相关文章

  • QFileInfo::isWritable() 在 Windows 7 上具有完全权限时返回 false

    QFile file filePath QFileInfo fileInfo file file open QIODevice ReadWrite or WriteOnly if fileInfo isWritable Log error
  • 面向 Delphi 开发人员的 Qt

    有人知道为 Delphi C Builder VCL 开发人员解释 Qt 的书籍或教程吗 对于具有该背景的开发人员来说 学习 Qt 的最佳方法是什么 我对如何使用 Qt 完成我知道如何在 Delphi 中完成的事情特别感兴趣 例如 Qt 相
  • wkhtmltopdf 修补了 qt 吗?

    我正在尝试将多个 URL 转换为 PDF 但是 当我编译 wkhtmltopdf 或运行时apt get install wkhtmltopdf并尝试一下 它说 错误 此版本的 wkhtmltopdf 是针对未修补的 QT 版本构建的 并且
  • 包含 Qt 标头的正确方法是什么?

    到目前为止我知道几种方法 includeQt 类 include
  • QChart 对大数据集无响应

    我的这段代码适用于高达 1000 的数据大小 现在我用 65536 个点对其进行了测试 series new QLineSeries QList
  • QML改变图像颜色

    我搜索了如何对图像进行着色 格式为 svg 或 png 我尝试用一 个填充图像的矩形覆盖我的图像 但由于我的图像不是矩形 它会给整个矩形着色 而不仅仅是图像 可以用qml改变图像颜色吗 或者 是否可以使用 QPixmap 更改 qt 使用
  • 内容居中的流式布局

    我有一排项目 当窗口宽度变得太小而无法显示一行中的所有项目时 这些项目应该堆叠起来 如下图所示 The Flow组件堆叠项目 但它们不是居中而是在左侧或右侧对齐 Flow Item Item Item Item Item QML 中是否有内
  • 如何在不同的QT线程中创建一个窗口?

    我有一个应用程序 其中每个线程 主线程除外 都需要创建自己的窗口 我尝试创建一个线程然后调用this gt exec in the run功能 然而 在我接到那个电话之前我就收到了一个错误 ASSERT failure in QWidget
  • cmake 找不到 Qt4

    由于4 8 0已经发布 我重新安装了Qt 现在我也想使用cmake 为了使 cmake 工作 我记得必须添加 mingw bin 文件夹 QtSDK Desktop Qt 4 7 3 到Qt4 7 3中的PATH 所以我猜测在中会有一个类似
  • 如何在Qt3D中优化点云渲染

    我正在尝试使用 Qt3D 显示大型点云 20M pts 我第一次发现这个图书馆https github com MASKOR Qt3DPointcloudRenderer https github com MASKOR Qt3DPointc
  • 无法将 [未定义] 分配给 QColor

    我正在使用 Qt 5 11 构建 运行代码 代码中有QML风格如下 Button style delegate Component id enabledButtonStyle ButtonStyle padding top 0 paddin
  • 运行最新版本时没有“最新”消息?

    我正在尝试使用Sparkle https sparkle project org与 Qt Go 的绑定 https github com therecipe qt app 闪光 m import
  • 在信号/槽处理期间删除 QObject

    我知道从槽处理中删除 QObject 可能会使应用程序崩溃 因为它可能有其他排队的事件 因此 我将使用 obj gt deleteLater 而不是使用 delete obj 据我所知 obj 等待处理所有排队的事件 然后 删除 obj Q
  • qt 如何知道按钮被点击?

    我正在尝试编写一个程序 用声音进行一些操作 我的问题是我有 3 个播放按钮和 3 个标签 我希望无论我单击 播放 按钮 都应该播放按钮附近标签中名称的声音 我有一个没有任何参数的播放插槽 那么 如何分别连接到每个播放按钮和每个标签呢 实际上
  • 在 QtCreator 中调试时如何查看 qDebug 消息

    我正在从 Eclipse CDT 带有 Qt 集成插件 过渡到 QtCreator 2 0 但仍有一件事困扰着我 QtCreator 当我在 QtCreator 中调试时 我在Application output tab直到我停止正在调试的
  • Qt - QProcess 不工作

    我尝试启动 Internet Explorer 所以我使用下面的代码 QProcess process new QProcess this QString temp C Program Files Internet Explorer iex
  • Qt QML MenuItem iconSource不显示

    我有一个非常简单的设置只是为了说明问题 import QtQuick Controls 1 4 import QtQuick Window 2 2 ApplicationWindow visible true width 640 heigh
  • QWebView等待加载

    bool MainWindow waitForLoad QWebView view QEventLoop loopLoad QTimer timer QObject connect view SIGNAL loadFinished bool
  • 如何从 ffmpeg 中打开的文件获取流信息?

    我正在尝试使用 ffmpeg 读取视频文件 我有与其旧版本相对应的工作代码 并开始尝试升级到最新的构建版本 将所有这些已弃用的函数替换为其实际的类似函数 但是我遇到了问题 似乎没有检索到任何流 并且视频负载停止在轨道中 这是我正在使用的代码
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图

随机推荐

  • 如何以编程方式安装 VisualStudio 扩展?

    如何获取已安装的 VisualStudio 扩展的列表 不知何故通过DTE 只要名字就足够公平了 这有帮助吗 System IServiceProvider serviceProvider package as System IServic
  • 链接生成的 Jooq 类时如何解决不明确的匹配

    我已经在 J PA 中定义了我的模型 并正在为我的应用程序编写一些查询 并且我正在使用 JOOQ 生成的类将所有表连接在一起 以检查请求的资源是否确实属于请求用户 但是 当我这样做时 我收到以下警告 Ambiguous match foun
  • python split 多个分隔符错误?

    我正在查看对这个先前提出的问题的答复 使用多个分隔符分割字符串 https stackoverflow com questions 1059559 split strings with multiple delimiters 对于这个问题的
  • 带有圆角半径和阴影的 SWIFT UITableViewCell

    我一直在尝试创建一个带有圆角和阴影的自定义表格视图单元格 我设法创建了圆角 但阴影仅显示在角上 而没有显示在其他地方 对于阴影和圆角 您可以使用以下代码 override func tableView tableView UICollect
  • 如何使用https://angular.io/docs/ts/latest/guide/webpack.html中的vendor.ts

    根据https angular io docs ts latest guide webpack html https angular io docs ts latest guide webpack html您应该能够在vendor ts文件
  • Python MySQL 连接器返回字节数组而不是常规字符串值

    我正在将一张表中的数据加载到 pandas 中 然后将该数据插入到新表中 但是 我看到的不是普通的字符串值 而是字节数组 bytearray b TM16B0I8 它应该是TM16B0I8 我在这里做错了什么 My code engine
  • 构建 10x10 UIButton 网格的最佳方法?

    我将有一个 10x10 网格的 UIButton 对象 每个 UIButton 都需要通过行号和列号来引用 因此它们可能应该存储在某种类型的数组中 我的问题 创建这个网格的最简单方法是什么 以编程方式还是通过 Interface Build
  • Android:时间选择器对话框

    我一直在尝试在对话框中创建时间选择器 但在片段类中收到错误消息 该类型未定义方法 is24HourFormat Activity DateFormat 在以下行中 在行 DateFormat is24HourFormat getActivi
  • 自定义元素选择器

    有没有办法用 CSS 选择所有自定义元素 我想让所有自定义元素默认为块元素 大多数浏览器默认使它们内联 然后根据需要覆盖它 我的规则可能看起来像这样 custom display block 所有自定义元素在标准中都有破折号 因此我可以利用
  • WPF 中的错误提供程序

    我正在查看工具箱中的 WPF 组件 但找不到 2005 2008 中出现的错误提供程序 被移除了吗 the 错误提供者 http msdn microsoft com en us library system windows forms e
  • 当我们切换到夏令时并返回时处理日期

    我想用R进行时间序列分析 我想制作一个时间序列模型并使用 timeDate 和 Forecast 包中的函数 我有 CET 时区的日内数据 15 分钟数据 每小时 4 个数据点 3 月 31 日实施夏令时 我丢失了通常拥有的 96 个数据点
  • 正则表达式:两个匹配之间的负向预测

    我正在尝试构建一个类似这样的正则表达式 match word exclude specific word match word 这似乎适用于消极的前瞻 但当我遇到这样的情况时 我遇到了问题 match word exclude specif
  • Android 如何在PrimaryClipChanged 上从剪贴板获取字符串?

    我正在尝试使用以下侦听器将文本复制到剪贴板中 import android content ClipboardManager OnPrimaryClipChangedListener import com orhanobut logger
  • 性能方面 MVC 比 ASP.NET 中的 Web 窗体更好吗

    我们将在 ASP NET 中开发一个网站 那么是使用 MVC 还是 Web 表单更好呢 这取决于您想要建立什么样的网站以及您创建网站的知识和经验 如果您了解自己的知识并且对自己 接近金属 工作的能力 事实上 充满信心 我想您可以使用 ASP
  • 如何在 HQL 中转义冒号?

    我的查询的条件部分如下 where foo bar like 查询将执行但没有结果 我认为这是因为冒号 因为它是 HQL 中的保留字符 那么我怎样才能在不发送的情况下逃脱它 作为我的查询的参数 我已经用过 and 没有成功 我找到了一个解决
  • Python:filter(函数,序列)和map(函数,序列)之间的区别

    我正在阅读 Python 文档 以真正深入了解 Python 语言 并遇到了过滤器和映射函数 我以前使用过过滤器 但从未使用过映射 尽管我在 SO 的各种 Python 问题中都看到过这两种情况 在阅读了 Python 教程中的相关内容后
  • 使用@Factory和@DataProvider进行TestNG

    我对 TestNG 和 Java 编程非常陌生 我对一起使用 Factory 和 DataProvider 有疑问 我想测试多次提交网络表单 每次使用不同的输入数据 我有以下代码 public class SolicitudEmpleo e
  • Chart.js:在饼图之外显示标签

    图表 js 2 6 0 我需要渲染一个如下所示的图表 始终显示所有工具提示不是可接受的方式 因为它们不会以正确的方式呈现 不幸的是我还没有找到解决方案 我已经尝试过件标签插件 但这有同样的问题 因为它的标签重叠 我无法隐藏某些标签 这是使用
  • 在 Rails 中保存和检索数组

    我正在 Rails 中开发电子学习 我想将一组数组保存到数据库中 目的是跟踪用户在电子学习各个部分的进度 我遇到过这个问题并回答 在数据库中存储数组 JSON 与序列化数组 https stackoverflow com questions
  • QQuickView - 无延迟/滞后地调整内容大小

    图像通常是解释某事的最简单方法 这是我遇到的问题的一个小屏幕截图 如果您查看窗口的右侧 您可以看到内容大小的调整有明显的滞后 延迟 这是一个在很多应用程序中都会发生的问题 但我想知道是否有办法在 Qt 应用程序中使用QQuickView和