2010-07-07 8 views
14

Chcę utworzyć okno dialogowe QT4 (używając projektanta QT), które zawiera część, w której należy wybrać plik.PyQt4 Widget wyboru pliku

Teraz wiem, że QFileDialog istnieje i mogę zaprogramować coś, co robi to, co chcę. Ale czy mogę po prostu zrobić to w projektancie QT?

Czy istnieje sposób na uzyskanie widżetu "wybierz plik" w projektancie QT? Czy pamiętam te przyciski, mając zaznaczony plik jako tytuł i małą strzałkę, pozwalającą użytkownikowi wybrać inny plik przez QFileDialog?

Czy istnieje gotowe rozwiązanie, czy też muszę je sam zaprogramować?

Odpowiedz

24

Z mojego projektu Qt nie ma dostępnego okna dialogowego pliku. Ale możesz to łatwo zrobić za pomocą kilku linii kodu.

Zakładając, że masz prosty przycisk o nazwie pushButton, a ścieżkę należy zapisać w liniiEdit.

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

pushButton.clicked.connect(selectFile) 

[edytuj] Zastanawiasz się, czy używasz KDE przez przypadek? Jeśli tak, możesz użyć do tego celu KUrlRequester. Można go łatwo skonfigurować, aby obsługiwał wszystko, od plików po adresy URL do katalogów.

+0

hej muszę zrobić to samo, ale ja dostaję błąd jako 'NameError: globalna nazwa„QFileDialog”nie jest defined' – lkkkk

+1

@Latik: trzeba importować je oczywiście' z PyQt4.QtGui importowej QFileDialog ' – Wolph

+0

tak, działa bardzo dziękuję !! – lkkkk

11

QFileDialog istnieje w QtGui. Przynajmniej w mojej wersji 4.4 i prawdopodobnie dużo wcześniej. Myślę, że powodem, dla którego nie jest to w programie Designer, jest to, że otwiera ono własne okno zamiast być widgetem umieszczanym w innym oknie.

Dokumentacja od QTDesigner może być lepsza i co najmniej wskazówka jego istnienia.

Utwórz instancję i uruchom polecenie show. Pojawia się i domyślnie jest /.

import QtGui 
self.fileDialog = QtGui.QFileDialog(self) 
self.fileDialog.show()