PyQt5文件对话框没有显示出来

时间:2015-05-17 07:47:11

标签: qt pyqt qt5 pyqt5 qfiledialog

我已将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,我必须停止并终止进程以结束程序。如果我直接从终端运行程序,我必须手动结束运行过程以结束程序。我无法弄清楚导致这种情况的原因,因为终端没有显示任何异常或警告。

那么,这是什么?

2 个答案:

答案 0 :(得分:1)

getExistingDirectory的参数错误。请试试这个。另外,我在拉取请求中添加了更多信息。

import os

def browse_file(self):
    self.save_dir = QFileDialog.getExistingDirectory(self, 
                      "Open Save Directory", os.path.expanduser('~'))
    print(self.save_dir)

答案 1 :(得分:0)

#!/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_())