0

さて、私はファイルシステムを使用して表示する必要があるQtアプリに取り組んできましたQFilesystemModel。期待どおりに表示できました。

コード:

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

これにより、QTreeView 内のすべてのドライブが表示されます。しかし、デフォルトでは、各ドライブ内に存在するフォルダーの色は黄色です。

これは私が変えたいものです。フォルダの色を「青」に変更できるQtの方法はありますか???

4

2 に答える 2

1

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);
于 2012-12-11T10:31:45.093 に答える
0

回避策は、独自のfileIconを使用することだと思います。

Qt は、現在のプラットフォームのデフォルト アイコンを使用します。Windowsを使用していると思います。

この質問は、実装方法に関するいくつかの手がかりを提供します。

(ところで、Qt を自分で学習し始めたばかりです!)

于 2012-12-11T09:24:11.903 に答える