将 QWidget 渲染为 QImage 丢失 alpha 通道

2023-12-02

我有一个简单的 Qt 小部件。它是QLabel应用了简单的 CSS 样式。样式的重要部分是圆形边框:

QString css("border-style: solid;"
       "border-width: 3px;"
       "border-radius: 7px;");

它在屏幕上显示得很好。标签超出边框的角用透明颜色填充,因此在任何背景上看起来都很棒。这是它在另一个小部件(具有深灰色背景色)上显示时的外观:

enter image description here

现在,当我像这样将其渲染到 QImage 时

QImage bitmap(label->size(), QImage::Format_ARGB32);
QPainter painter(&bitmap);
balloon->render(&painter);
bitmap.save("C:/1.png");

我得到这个(在图像编辑器中打开图像以清楚地演示问题):

enter image description here

请注意拐角处如何不保留透明度。有什么问题?我怎样才能正确渲染它?

P.S.我已经尝试过这个来测试 QImage 是否能够保存 Alpha 通道,并且我的图像编辑器可以正确显示它:

bitmap.fill(QColor::fromRgba(qRgba(0, 0, 0, 0)));
bitmap.save("C:/1.png");

它工作正常,我可以看到透明度为方格图案。


这可以解决问题:

QImage bitmap(label->size(), QImage::Format_ARGB32);
bitmap.fill(Qt::transparent);
QPainter painter(&bitmap);
label->render(&painter, QPoint(), QRegion(), QWidget::DrawChildren);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 QWidget 渲染为 QImage 丢失 alpha 通道 的相关文章

  • QT 中只获取文件而不获取目录?

    当我这样做时 QDir myDir home some location QStringList filesList myDir entryList 它返回该位置内的文件和目录 但我只想要文件 并且这些文件可以具有任意扩展名 有任何想法吗
  • 为什么下面的重叠比较总是评估为 true

    我不明白为什么以下代码有警告 指出重叠比较始终评估为真 接下来的语句永远不会被执行 QVariant MainModel data const QModelIndex index int role const if index isVali
  • Qt程序部署到多平台,如何?

    我是 Qt 编程新手 我想开发一个程序 我想在 Windows Linux ubuntu 和 Mac 上运行 听说Qt支持多平台应用程序开发 但我的问题是 在我部署或编译后 任何 Qt 库都需要在 Ubuntu 中运行这个应用程序吗 如果您
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • 如何在 C++ 和 QML 应用程序中使用 qrc?

    我在 Windows7 上用 c qnd Qt Creator QML 编写了 Qt Quick Desktop 应用程序 现在 我必须部署它 并且我需要隐藏 qml 文件和图像 意味着 将它们放入资源等中 我读到有一个很好的方法可以使用
  • Android 导航视图透明度

    每个人 是否有可能使Navigation View透明的 我有自定义布局并尝试为此布局设置 50 透明背景 Navigation View or Drawer Layout android background 80000000 但它没有给
  • Qt 创建者 + MITK (Linux)

    我正在尝试使用MITK 与 Qt Creator 我已经通过 ccmake 成功编译并使用了 VTK 和 ITK 我已经编译了 MITK超级建造模式 它下载 CTK VTK ITK 等 然后我就配置好了 我已经用 make 编译了 大约两个
  • 如何在模型更改时停止ListView“跳跃”

    我需要做什么 我需要创建一个聊天窗口用一个ListView在 QML 中存储聊天消息 我设置listView positionViewAtEnd 以便跟踪最后的消息 我禁用positionViewAtEnd当我向上滚动时 我可以阅读过去的消
  • 禁用 QML Slider 的鼠标滚轮

    我希望能够滚动Flickable使用鼠标滚轮 或触摸板上的两根手指 不改变Sliders它可能包含 示例代码及结果应用 import QtQuick 2 7 import QtQuick Window 2 2 import QtQuick
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 在 Qt5 中,是否需要 Q_INVOKABLE 来从 QML 调用公共 QObject 函数?

    我刚刚意识到我可以调用暴露于 QML 的对象的几乎任何函数 现在我对 Q INVOKABLE 很好奇 Qt5docs http doc qt io qt 5 qtqml cppintegration exposecppattributes
  • 退出 Qt 程序的正确方法?

    我应该如何退出 Qt 程序 例如在加载数据文件时 发现文件损坏 并且用户需要退出该应用程序或重新启动数据文件 我是不是该 call exit EXIT FAILURE call QApplication quit call QCoreApp
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • Qt 布局,在小部件大小更改后调整到最小大小

    基本上我有一个QGridLayout里面有一些小部件 最重要的是 2 个标签 我用它们将图像绘制到屏幕上 好吧 如果用户愿意 他可以更改传入图像的分辨率 从而强制标签调整大小 我们假设标签的初始大小是320x240 用户将 VideoMod
  • 即使在可访问性中勾选应用程序,AXIsProcessTrustedWithOptions 也不会返回 true

    As this question https stackoverflow com questions 17693408 enable access for assistive devices programmatically on 10 9
  • Qt:测量事件处理时间

    我想测量我的应用程序中的哪些事件在主线程中需要很长时间才能执行 阻塞 GUI 或者至少是否有任何事件花费的时间超过 比如说 10 毫秒 显然 我对需要很长时间的任务使用线程和并发 但有时很难在其他线程中放入的内容和可以保留在 GUI 中的内
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • 如何检测QTableView中的双击

    我正在使用 PyQt 创建 GUI 应用程序 在继承自 QTableView 的视图中 需要检测用户双击行时选择的行 该表可以排序 但不能编辑 我该怎么做 注意 尝试了 doubleClicked int 信号 它是由鼠标按钮发出的 而不是
  • 我点击的号码没有出现在反应项目的屏幕上

    当我尝试在屏幕中呈现点击的数字时 该数字没有出现 但它确实可以在控制台中显示 我不知道如何修复它应该在屏幕上 号码 旁边应用的号码 import render from testing library react import React
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList

随机推荐

  • 按列值计算百分比

    我有以下有关瑞士注册车辆的数据框 Fuel Year Region Count Gasoline 2013 GE 169600 Diesel 2013 GE 46790 Hybrid 2013 GE 2268 Electric 2013 G
  • Pandas:计算列中所有匹配模式的出现次数

    假设我有一个数据框 df pd DataFrame column 1 ABC DEF JKL GHI ABC ABC ABC DEF GHI DEF DEF DEF ABC GHI DEF ABC column 2 9 2 3 4 6 2
  • i++、i=i+1 和 i+=1 哪个更快? [复制]

    这个问题在这里已经有答案了 我很好奇 想知道其中CPU运行速度最快的是哪一个i i 1 and i i 1我如何衡量它们的执行时间 嗯 最初人类发明了以下记录 i i 1 然后随着硬件方面的成就人类发明了以下记录 i 1 最后由于计算机科学
  • 使用 PHP 和正则表达式自定义 URL 路由

    我正在尝试创建一个非常简单的 URL 路由 我的思考过程是这样的 首先检查所有静态URL 然后检查数据库 URL 如果都不存在则返回404 当然 静态 URL 很容易实现 但我正在尝试找出实现动态 URL 的最佳方法 我宁愿不必设置静态前缀
  • SWIFT:为什么“NSURL(string:”返回 Nil,即使它是浏览器中的有效 URL?

    前两个示例链接有效 第三个链接返回 NIL 为什么 NSUrl 对于这样的字符串返回 nil 即使它在浏览器中是有效的 url 我应该更多地处理字符串吗 这是我的代码 import UIKit import Foundation class
  • vfptr 中的 Visual C++ 方法按相反顺序排列

    有没有办法控制 vfptr 中某些类方法的顺序 看来Visual C 2010至少将方法指针按照声明顺序排列 重载方法除外 下面是示例代码 enum ENUM class CLASS virtual void foo1 virtual CL
  • 在 AngularJs 中共享数据

    如何将数据共享给所有控制器 我有一个控制器 可以从服务器 file json 中提取数据 我想将其共享给其他控制器 sampleApp controller PhoneListCtrl scope http function scope h
  • iPhone:时间剖面仪

    有没有好的教程或描述如何使用时间剖面仪 我发现的只是http blancer com tutorials flex 78335 apple profiling tools shark is out instruments is in and
  • 单词中不同的字母颜色[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 有没有什么解决方案可以结合html css和js来一一改变单词的字母颜色 某种简单的方法 我是js新手 是的 有 而且也很受欢迎 http lettingjs com 怎么运行的
  • 即使设置了哈希密码格式,ASP.Net 会员也会将更改后的密码保存为纯文本

    我正在使用 ASP Net SqlMembershipProvider 来管理我的用户 这是我的配置
  • python多线程比串行慢?

    我正在尝试找出Python 中的多线程编程 这是我想要比较串行和并行速度的简单任务 import threading import Queue import time import math def sinFunc offset n res
  • Excel Interop - 如何更改命名范围

    我有一个 Excel 模板文件 我从 SQL Server OLEDB 连接器将数据填充到其中 该文件包含一些引用数据库填充的数据集的数据透视表 目前我所做的是使用 Data A K 范围选择工作表中的所有行 这会带来数据透视表中显示空白值
  • 使用 jQuery 使用数据属性对元素进行排序

    只是想让你知道 我是一个菜鸟 我尝试为我的网站上的菜单导航编写特定功能 http thomasmedicus at 我希望我网站上的访问者能够按 日期 或 相关性 对我的项目进行排序 我创建了这张图片 以便您可以更好地了解我 preview
  • 在 Excel 2013 中使用宏设置打印区域

    在 Excel 2013 中 工作表名为 Tags 我在尝试着设置打印区域 from A2直到页尾 以列结束L Worksheets Tags PageSetup PrintArea Worksheets Tags Range Cells
  • 为什么我的模型预测相同的标签?

    我正在训练一个小型网络 训练似乎进展顺利 val 损失减少 验证准确度达到 80 左右 一旦没有更多改进 它实际上会停止训练 耐心 10 它训练了 40 个 epoch 然而 它只为每个测试图像预测一个类别 我尝试随机初始化转换层 我添加了
  • C# 正则表达式用于匹配嵌套括号内的特定文本

    我有这些代码行用于括号之间的运算符 string filtered Regex Replace input string Empty var result filtered Split new StringSplitOptions Remo
  • 逗号分隔值到单引号和逗号分隔值

    我的数据为 abc defg hijklm op qrs tuv 我希望将这些数据转换为 abc defg hijklm op qrs tuv 我想在linux下做 我使用 sed 我一直在互联网上查找 但没有找到解决方案 请帮我 在开头添
  • 核心数据不保存我的数据

    我使用核心数据来保存一些整数 速率 然后在上下文中调用 save HeartRateBeat beat HeartRateBeat heartRateWithHeartRate rate ofRecordTitle self recordT
  • 使用 Django 实现单点登录 (SSO) [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想使用 Django 为我们当前使用的多个应用程序实现单点登录 SSO 我如何使用 Django 来实现这个 我们正在使用 OpenAM http
  • 将 QWidget 渲染为 QImage 丢失 alpha 通道

    我有一个简单的 Qt 小部件 它是QLabel应用了简单的 CSS 样式 样式的重要部分是圆形边框 QString css border style solid border width 3px border radius 7px 它在屏幕