【发布时间】:2015-05-17 07:47:11
【问题描述】:
我已将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,我必须停止并终止进程才能结束程序。如果我直接从终端运行程序,我必须手动结束正在运行的进程才能结束程序。我不知道是什么原因造成的,因为终端没有显示任何异常或警告。
那么,这是什么?
【问题讨论】:
-
我已经在 Arch Linux 上测试了你的代码,但我无法重现问题。目录路径按预期打印,进程正常终止。因此,要么你正在做一些你没有告诉我们的其他事情,要么是你的设置有一些特定的东西导致了问题。您是否可以在不同的机器上测试您的代码,或者在虚拟机中测试您的代码?
-
PS:在我的机器上,我有一个外部驱动器,它会在一段时间未使用时自动进入睡眠模式以节省电量。如果我在睡眠时尝试打开文件对话框,则需要 5-10 秒才能唤醒,并在此过程中阻止所有内容。也许你的机器上也有类似的问题?
-
通常,在测试我的代码时,我会运行 chromium、pycharm 和 konsole。我不知道这些进程是否会干扰我的代码。但是,似乎每个人都可以很好地运行我的代码。也许我的系统有问题。或者,也许是因为我使用的是基于 qt5 的 KDE Plasma 5?
标签: qt pyqt qt5 pyqt5 qfiledialog