从图片开始 - QImage
或QPixmap
,如何将其设置为给定文件上的取景器图标?您可以通过将图像拖动到任何文件的“获取信息”窗格来手动执行此操作。据推测,该图标保存在该文件的资源分配中。
答案 0 :(得分:0)
这是一个完整的例子。运行时,它会要求您提供一个文件来更改图标,然后将图标设置为带有蓝色轮廓的黄色圆圈。
// https://github.com/KubaO/stackoverflown/tree/master/questions/file-icon-set-38486934
#include <QtWidgets>
#include <QtMacExtras>
#include <AppKit/AppKit.h>
QPixmap circle() {
QPixmap pix{128, 128};
pix.fill(Qt::transparent);
QPainter p{&pix};
p.setBrush(Qt::yellow);
p.setPen(QPen{Qt::blue, 3});
p.drawEllipse(pix.rect());
return pix;
}
int main(int argc, char ** argv) {
QApplication app{argc, argv};
auto path = QFileDialog::getOpenFileName(nullptr, "Select File");
if (! path.isEmpty()) {
auto image = QtMac::toNSImage(circle());
auto filePath = path.toNSString();
[[NSWorkspace sharedWorkspace] setIcon:image forFile:filePath options:0];
[filePath release];
[image release];
}
return 0;
}
QT = widgets macextras
CONFIG += c++11
TARGET = file-icon-set-38486934
TEMPLATE = app
OBJECTIVE_SOURCES += main.mm
LIBS += -framework AppKit