我应该从QFileIconProvider或QStyle获取标准图标吗?

时间:2017-06-02 15:55:07

标签: c++ qt qstyle

两个类都提供文件夹和文件的标准图标。我应该使用哪一个?他们保证是一样的吗?

1 个答案:

答案 0 :(得分:4)

Qt并不严格保证......但是,在当前的实现中,QFileIconProvider是使用该样式的简写。这不太可能很快改变,这样做是合乎逻辑的......因此,我不再挑剔:是的,它是有保障的。

Qt是开源的,所以只需查看来源:https://github.com/qt/qtbase/blob/dev/src/widgets/itemviews/qfileiconprovider.cpp。你有

QIcon QFileIconProvider::icon(IconType type) const
{
    Q_D(const QFileIconProvider);
    switch (type) {
    case Computer:
        return d->getIcon(QStyle::SP_ComputerIcon);
//....
QIcon QFileIconProviderPrivate::getIcon(QStyle::StandardPixmap name) const
{
    switch (name) {
    case QStyle::SP_ComputerIcon:
        if (computer.isNull())
            computer = QApplication::style()->standardIcon(name);
        return computer;
//...