我希望跨平台获取系统图标,例如setIcon
方法QWidget
中的文件夹图标。像这样:
QWidget *myWidget = new QWidget;
myWidget->setIcon(/*something to get a system icon*/);
这可能吗?如果是,怎么做?
答案 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::mimeTypesForFileName
和QIcon::fromTheme
。
有关示例
,请参阅https://stackoverflow.com/a/45739529/5785726