在非 gui 线程中获取文件图标 (QFileIconProvider::icon)

Posted

技术标签:

【中文标题】在非 gui 线程中获取文件图标 (QFileIconProvider::icon)【英文标题】:Getting file icons (QFileIconProvider::icon) in non-gui thread 【发布时间】:2012-06-24 10:04:09 【问题描述】:

我正在尝试从非 gui 线程获取文件图标以避免 gui 冻结。我收到警告:

QPixmap:在 GUI 线程之外使用像素图是不安全的

有没有办法解决我的问题?也许还有另一种简单的方法来获取文件图标?我的目标系统是Ubuntu,我不需要支持其他系统。

【问题讨论】:

【参考方案1】:

您可以使用QImage 来加载文件图标,这些图标可以在GUI 线程 之外使用。然后您可以使用QImage 提供的任何函数将其转换为QPixmap。比如下面static函数:

QPixmap QImage::fromImage (const QImage & image, Qt::ImageConversionFlags flags)

【讨论】:

问题是 QFileIconProvider 在内部使用 QPixmap。我无法改变它。

以上是关于在非 gui 线程中获取文件图标 (QFileIconProvider::icon)的主要内容,如果未能解决你的问题,请参考以下文章

在非 GUI 线程中创建 QWidget

JMeter - 在非 GUI 模式下测试运行时运行 shutdown.cmd 时出错

如何在非阻塞线程中同步获取单声道对象?

如何在非 GUI 应用程序中使用 QWebPage

JMeter - 来自非 gui 模式的摘要报告

Jmeter非命令行执行脚本