web-dev-qa-db-ja.com

PyQt4ファイル選択ウィジェット

ファイルを選択する必要のある部分を含むQT4(QTデザイナーを使用)ダイアログを作成したい。

これで、QFileDialogが存在することがわかったので、自分のやりたいことをプログラムすることができます。しかし、QTデザイナーでそれを行うこともできますか?

QTデザイナーで「ファイル選択」ウィジェットを取得する方法はありますか?または、これらのボタンを覚えています。選択したファイルをタイトルとして、ユーザーがQFileDialogで別のファイルを選択できる小さな矢印を持っていますか?

既製のソリューションはありますか、それとも自分でプログラムする必要がありますか?

21
Nathan

私の知る限り、Qtデザイナーから利用できるファイルダイアログはありません。しかし、数行のコードで簡単に実行できます。

PushButtonと呼ばれる単純なボタンがあり、パスがlineEditに格納されていると仮定します。

def selectFile():
    lineEdit.setText(QFileDialog.getOpenFileName())

pushButton.clicked.connect(selectFile)

[編集]でも、たまたまKDEを使用していますか?その場合、KUrlRequesterを使用できます。ファイルからURL、ディレクトリまで、あらゆるものをサポートするように簡単に構成できます。

34
Wolph

QFileDialogQtGuiに存在します。少なくとも私のバージョン4.4では、おそらくもっと以前のバージョンでも。 Designerにない理由は、別のウィンドウに配置するウィジェットではなく、独自のウィンドウを開くためです。

QTDesignerからのドキュメントは、その存在の少なくともヒントとなる可能性があります。

それをインスタンス化し、showコマンドを実行します。すぐに現れ、デフォルトは/

import QtGui
self.fileDialog = QtGui.QFileDialog(self)
self.fileDialog.show()
13
Vicky T

メソッドgetOpenFileName() in QFileDialog Classを使用できます。

QFileDialog.getOpenFileName()は、ファイルパスと選択したファイルタイプを返します

私はこれを手に入れました:( 'C:/Users/Sathsara/Desktop/UI/Test/test.py'、 'All Files(*)')

ファイルパスのみを取得するには、QFileDialog.getOpenFileName()[0]を使用します


サンプルコード:

def selectFile():
   print(QFileDialog.getOpenFileName()[0])


dlg.locationBtn.clicked.connect(selectFile)
2
Sathsara AM