[英]PyQt5 File open Dialog
有沒有辦法用pyqt5文件對話框打開文件夾
我嘗試引用引號,我想打開一個文件夾或一個包含子目錄或子文件夾的目錄
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QFileDialog, QTextEdit, QPushButton, QLabel, QVBoxLayout
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.resize(800, 600)
self.button1 = QPushButton('Open Project Folder')
self.button1.clicked.connect(self.get_folder)
self.labelImage = QLabel()
self.textEditor = QTextEdit()
layout = QVBoxLayout()
layout.addWidget(self.button1)
layout.addWidget(self.labelImage)
layout.addWidget(self.button2)
layout.addWidget(self.textEditor)
self.setLayout(layout)
def get_folder(self):
file_name, _ = QFileDialog.getOpenFileName(
self, 'Project Data', r"", "")
print(file_name)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())```
QFileDialog 有多種 靜態函數可用,如果你需要打開一個目錄,不要使用getOpenFileName
而是getExistingDirectory()
。
正如您從文檔中看到的,參數略有不同,如果您從 python shell 運行help(QtWidgets.QFileDialog.getExistingDirectory)
,您將看到完整的參數簽名和以 python 語法編寫的返回值。
getExistingDirectory(parent: QWidget = None, caption: str = '', directory: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = QFileDialog.ShowDirsOnly) -> str
最后一部分( -> str
)表示只有一個返回值,即所選目錄的字符串(如果用戶取消對話框,則該字符串將為空)。
def get_folder(self):
folder = QFileDialog.getExistingDirectory(
self, 'Project Data', '')
if folder:
print(folder)
我建議你經常研究你正在使用的每個類的文檔,並使用官方文檔; 即使它是面向 C++ 的,函數在 PyQt 上也具有相同的名稱,並且它們的參數/返回值在 99% 的情況下是相同的。 每當您有疑問或遇到有關錯誤參數或返回數據的問題時,您可以查看官方 PyQt文檔或僅使用 python shell 中的help(class.function)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.