PyQt5文件对话框没有显示



我已经将QPushButton连接到调用文件对话框的方法。简化后的代码如下所示:

def init_buttons(self):
    self.browse_button = QPushButton('&Browse')
    self.browse_button.clicked.connect(self.browse_file)
def browse_file(self):
    file_name = QFileDialog.getExistingDirectory()
    # Just for checking
    print(file_name)

有时QFileDialog不会出现。这个过程确实在运行,因为主类/小部件不响应我的点击。有时它会出现。

如果QFileDialog没有出现,使用pycharm,我必须停止并杀死进程以结束程序。如果我直接从终端运行程序,我必须手动结束正在运行的进程来结束程序。我不知道是什么原因造成的,因为终端没有显示任何异常或警告。

这是什么?

getExistingDirectory的参数错误。请试试这个。此外,我在我的拉请求中添加了进一步的信息。

import os
def browse_file(self):
    self.save_dir = QFileDialog.getExistingDirectory(self, 
                      "Open Save Directory", os.path.expanduser('~'))
    print(self.save_dir)
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import (QMainWindow, QTextEdit,
    QAction,QMessageBox, QFileDialog, QApplication,QPushButton,QInputDialog,QLineEdit)
from PyQt5.QtGui import QIcon

class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.fileName=""
        self.text=""
        btn1 = QPushButton("Encrypt", self)
        btn1.clicked.connect(self.onBtn1)
        self.show()
    def onBtn1(self):
        self.fileName, _  = QFileDialog.getOpenFileName(self, 'Open file', '/Users/Jarvis/Desktop/')
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

最新更新