簡體   English   中英

QFilesystemModel顯示驅動器時,可以在QTreeView中更改文件夾顏色嗎?

[英]Can folder color be changed in QTreeView when QFilesystemModel displays drives?

好吧,我一直在開發一個Qt應用程序,我需要使用QFilesystemModel顯示文件系統。我已經能夠按預期顯示它。

碼:

QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir::currentPath())
tree->setModel(model);

這將顯示QTreeView中的所有驅動器。 但眾所周知,默認情況下,每個驅動器中的文件夾顏色為黃色

這就是我想要改變的地方。 Qt中有一種方法可以將文件夾的顏色更改為“藍色”嗎?

您可以通過qt委托自定義QTreeView。 但是,如果僅用於圖標,我認為您可以重新實現:

class MyQFileSystemModel : public QFileSystemModel {
public:
    QVariant data( const QModelIndex& index, int role ) const {

        if( role == Qt::DecorationRole ) { 
            return QVariant(QIcon(QPixmap("icon.png")));
        }

        return QFileSystemModel::data(index, role);
    }
};

若要了解委托,建議您研究以下示例: 旋轉框委托

編輯:您必須從QFileSystemModel重新實現方法數據,必須從QFileSystemModel繼承。

然后像以前一樣做:

MyQFileSystemModel* model = new MyQFileSystemModel;
model->setRootPath(QDir::currentPath())
tree->setModel(model);

我認為解決方法是使用您自己的fileIcon

Qt使用當前平台的默認圖標。 我猜你在Windows上。

這個問題提供了一些有關如何實施的線索。

(順便說一句,我剛剛開始自己​​學習Qt!)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM