python - PyQt4 File Widget de selección
qfiledialog pyqt (3)
Quiero hacer un diálogo QT4 (usando el diseñador QT), que contiene una parte donde se debe seleccionar un archivo.
Ahora, sé que QFileDialog existe, y puedo programar algo que hace lo que quiero. ¿Pero también puedo hacerlo en el diseñador QT?
¿Hay alguna manera de obtener un widget de "selección de archivo" en el diseñador QT? ¿O recuerdo que estos botones tienen el archivo seleccionado como título y una pequeña flecha que le permite al usuario seleccionar otro archivo con el QFileDialog?
Entonces, ¿hay una solución ya hecha o tengo que programarla yo mismo?
No hay ningún cuadro de diálogo de archivos disponible del diseñador Qt, que yo sepa. Pero puedes hacerlo fácilmente con unas pocas líneas de código.
Suponiendo que tiene un botón simple llamado pushButton y la ruta se debe almacenar en lineEdit.
def selectFile():
lineEdit.setText(QFileDialog.getOpenFileName())
pushButton.clicked.connect(selectFile)
[edit] Solo me pregunto, ¿estás usando KDE por casualidad? Si es así, entonces puedes usar el KUrlRequester para esto. Se puede configurar fácilmente para admitir cualquier cosa, desde archivos a direcciones URL o directorios.
Puede usar el método getOpenFileName () en QFileDialog Class.
QFileDialog.getOpenFileName () devolverá la ruta del archivo y el tipo de archivo seleccionado
Conseguí esto: (''C: /Users/Sathsara/Desktop/UI/Test/test.py'', ''Todos los archivos (*)'')
Para obtener solo la ruta del archivo, use QFileDialog.getOpenFileName () [0]
Código de muestra:
def selectFile():
print(QFileDialog.getOpenFileName()[0])
dlg.locationBtn.clicked.connect(selectFile)
QFileDialog
existe en QtGui
. Al menos en mi versión 4.4 y probablemente mucho antes también. Creo que la razón por la que no está en Designer es porque abre su propia ventana en lugar de ser un widget para colocar en otra ventana.
La documentación de QTDesigner podría ser mejor y al menos un indicio de su existencia.
Crea una instancia y ejecuta el comando show
. Viene a la derecha y por defecto a /
.
import QtGui
self.fileDialog = QtGui.QFileDialog(self)
self.fileDialog.show()