在QWidget的setIcon方法中使用系统图标

时间:2016-09-28 14:05:00

标签: c++ qt icons

我希望跨平台获取系统图标,例如setIcon方法QWidget中的文件夹图标folder icon。像这样:

QWidget *myWidget = new QWidget;
myWidget->setIcon(/*something to get a system icon*/);

这可能吗?如果是,怎么做?

3 个答案:

答案 0 :(得分:2)

  • 使用QFileIconProvider::icon(IconType)从一小部分类型中获取特定类型的图标。

    在您的特定情况下,您需要icon(QFileIconProvider::Folder)

  • 使用QFileIconProvider::icon(const QFileInfo &)获取特定目录条目的图标。

  • 使用QIcon::fromTheme(const QString &, const QIcon & = QIcon())在Linux / X11上获取主题图标。

答案 1 :(得分:0)

我认为您正在寻找QIcon::fromTheme方法。

示例:

QIcon undoicon = QIcon::fromTheme("edit-undo");
  

注意:默认情况下,只有X11会支持主题图标。要在Mac和Windows上使用主题图标,您必须在themeSearchPaths()之一中捆绑符合标准的主题,并设置相应的themeName()

答案 2 :(得分:0)

对于linux / X11,您可能正在寻找QMimeDatabase::mimeTypesForFileNameQIcon::fromTheme

有关示例

,请参阅https://stackoverflow.com/a/45739529/5785726