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