我应该从 QFileIconProvider 还是 QStyle 获取标准图标?
Should I fetch standard icons from QFileIconProvider or QStyle?
两者 类 都提供文件夹和文件的标准图标。我应该使用哪一个?他们保证是一样的吗?
Qt 不严格保证...但是,在当前的实现中,QFileIconProvider
是使用样式的 shorthand。这不太可能很快改变,这样做是合乎逻辑的...因此,我不再吹毛求疵:是的,这是有保证的。
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;
//...
两者 类 都提供文件夹和文件的标准图标。我应该使用哪一个?他们保证是一样的吗?
Qt 不严格保证...但是,在当前的实现中,QFileIconProvider
是使用样式的 shorthand。这不太可能很快改变,这样做是合乎逻辑的...因此,我不再吹毛求疵:是的,这是有保证的。
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;
//...