問題タブ [qfilesystemmodel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QTreeViewとQFileSystemModelを使用して、特定のファイルを含むフォルダーのみを表示するにはどうすればよいですか?
QTreeViewとQFileSystemModelを使用して特定のフォルダーをフィルタリングする際に問題が発生しました。
ルートQFileSystemModelを特定のフォルダーに設定しました-これは機能します。ただし、ファイルを含むフォルダーのみを表示したいと思い.jpg
ます。これは可能ですか?
ファイルをフィルタリング.jpg
すると機能しますが、QTreeViewには、ファイルがないフォルダーも含め、すべてのフォルダーが表示され.jpg
ます。したがって、ユーザーが.jpg
ファイルなしでフォルダを開こうとしても、何も起こりません。
これらのフォルダを非表示にするにはどうすればよいですか?
注:以下にコードの一部があります。
qt - QFileDialog を使用したカスタム QFIleSystemModel
現在、ディレクトリの代わりにアーカイブを使用してサブファイルを保持するプロジェクト システムを実装しています。プロジェクトの仮想ファイル システムを保持するデータ構造を保持し、必要に応じて書き出します。
現在、この仮想ファイル システムのグラフィカル フロント エンドを実装しようとしており、QFileDialog を使用して仮想ファイル システムに「保存」したいと考えていました。
少し調べてみたところ、QFileSystemModel をサブクラス化するか、プロキシ モデルを実装する必要があるようです。後者は、ソートとフィルタリングのために既存のモデルを変更することをより意図しているように見えますが、私はそれを完全に置き換えたいので、良い選択肢ではないと思いました. QFileSystemModel のソース コードを調べてみましたが、再利用するのも難しいようです。私は Qt モデル/ビューの初心者なので、間違っている可能性があります。
QFileDialog を仮想ファイル システム用に転用する正しい方法は何ですか? これが役立ついくつかのシナリオを考えることができるので、これは少なくともある程度文書化されると思います。
誰かが私を正しい方向に向けることができれば、私はとても感謝しています.
python - Python によって生成されたファイルの変更が QFileSystemModel によって検出されない
PyQt と Python を使用して、次の問題に遭遇しました。
- QFileSystemModel をセットアップし、setRootPath() を呼び出して、dataChanged シグナルに接続します。
- Python から新しいファイルを開き、テキストを書き込みます。次に、それを閉じます。
- 追加モードでファイルを再度開き、さらにテキストを書き込みます。次に、それを閉じます。
- 外部エディターでファイルを開きます。いくつかのことを書きます。保存。もっといろいろ書いて。保存。
(3) を行うと、dataChanged シグナルは発行されません。ただし、(4) を実行すると、dataChanged シグナルが発行されます。
手がかりはありますか?問題を再現するコード スニペットを以下に示します。
よろしくお願いします、
マッツ
より一般的な観察結果を次に示します。
基本的な問題は、QFileSystemModel が明らかにファイルの変更を適切な方法で監視していないことです。
ケース 1 (Ubuntu):
1) スクリプトを「python fsm.py &」としてバックグラウンドで実行します。2) スクリプトが開始されたのと同じディレクトリで Python プロンプトを起動します。3) 次のように入力します。
open() が呼び出されると、QFileSystemModel によって新しいファイルが検出されます。ただし、f.write() および f.close() によるファイルの変更は検出されません。
ケース 2 (Ubuntu):
1) スクリプト 'fsm.py' がまだ実行されている間に、外部エディタ (gedit、emacs など) を使用して新しいファイルを開きます。 2) 何かを書き込んで保存します。
この場合、新しいファイルと変更の両方が検出されます。これがまずわからない。Python IO が検出されないのに、エディタからの IO が検出されるのはなぜですか?
ケース 3 (Ubuntu):
Ubuntu の使用: Nautilus ファイル ブラウザーを起動し、ケース 1-2 の手順 1-3 を繰り返します。次に、新しいファイルと変更の両方が nautilus によって検出されます。そのため、Python で生成された IO が監視されますが、GNOME ファイル監視システムを使用しているようです。
ケース 1 (Windows 7):
同じ動作。
ケース 2 (Windows 7):
メモ帳またはワードパッドが使用されている場合、ファイルの変更は検出されません。GVim 7.3 を使用すると、ファイルの変更が検出されます。
ケース 3 (Windows 7):
ネイティブの Windows 7 ファイル ブラウザーを起動すると、ケース 1-2 のすべての mod が検出されます。
これで意味がわかりますか?
qt - QFileSystemModel ソート DirsFirst
QDirModel のように QDir::DirsFirst で QFileSystemModel をソートするにはどうすればよいですか? QFileSystemModel にはメソッドがありませんsetSorting
。
qt - QFileSystemModel でファイル拡張子を非表示にする方法
QFileSystemModel を QTreeView にバインドしました。QFileSystemModel は readOnly を false に設定しているため、ユーザーはファイルの名前を変更できます... ...
名前の変更を機能させたままファイル拡張子を非表示にするにはどうすればよいですか?
ありがとう
qt - QFileSystemModelでディレクトリを除外するには?
私はこのコードを使用します。
一部のフォルダを除外する方法がわかりません。
c++ - QTreeView - 一部の要素の展開可能な外観を削除します
QTreeView (QFileSystemModel から継承されたモデルが取り込まれた) の一部の要素の展開可能な属性を削除したいと思います。この要素を展開した直後に簡単に折りたたむことができますが、QTreeView では展開可能として引き続き表示されます。それらを展開できないものとして表示するにはどうすればよいですか?
c++ - QFileSystemModel setRootPath
フォルダ (Mac OS の「Users」フォルダ) の内容を表示する Qt アプリケーションを作成しようとしています。コードは次のとおりです。
アプリケーションを実行すると、「/Users」フォルダの内容を表示する代わりに、ルート ドライブが表示されます (注: ドライブの内容ではありません)。フォルダーは存在し、他のフォルダーも使用してみました。
python - PyQt の QTreeView と QFileSystemModel でダブルクリックのファイル名変更動作を無効にする方法は?
簡単な質問です。F2 または Enter を使用して名前を変更し、ダブルクリックしてファイルを開きたいと思います。
I を使用self.treeView.doubleClicked.connect(self.doubleclick)
すると、メソッドで処理を実行できますself.doubleClick
が、名前の変更は引き続きトリガーされます。
モデルは読み取り専用ではありません ( model.setReadOnly(False)
)。
c++ - Qt プロキシ モデルの使用例
Qt 4QFileSystemModel
とQTreeView
. 私はファイル マネージャーのような Windows エクスプローラーを作成しており、ツリーを Windows に似たものにしたいと考えています。このツリーは、デスクトップ、マイ ドキュメントなどのショートカット パスで構成されています。私が望む唯一のことは、ツリーを次のようにすることです。
- 私のコンピューター
- デスクトップ
- 私の文書
- C:\
- D:\
- ...
で実現できると聞きましたQAbstractProxyModel
。を使用しQAbstractProxyModel
て動作させた人はいますか? はいの場合、適切な例を教えてください。前もって感謝します。