如何在QTest中关闭QFileDialog.getOpenFileName?

时间:2017-03-02 16:25:32

标签: python qt pyqt

我正在使用PyQt4在Python 3.5中开发一个应用程序,我想使用QTest进行单元测试。到目前为止,除了这个问题,我设法用QTest做任何我想做的事情:

我的窗口作为文件夹按钮,当您单击它时,打开文件对话框以选择文件夹(经典)。这或(或多或少)写得像我的代码中那样:

self.file_dialog = QtGui.QFileDialog()
[...]    
tmp_path = self.file_dialog.getOpenFileName(self, caption='toto', filter="*.csv")

我的问题是在QTest中,当它出现时我无法找到关闭此对话框的方法。

我已经尝试过调用它的close()或reject()方法(直接或使用单发计时器),但这些似乎都不起作用......

有没有我没想过的解决方案?我不介意关闭所有窗口,如果有必要(但我不能这样做)

谢谢!

1 个答案:

答案 0 :(得分:0)

据我所知,您不应在测试中使用静态方法(例如getOpenFileName),因为您无法控制对话框窗口的打开。相反,您应该使用构造函数,设置所需的选项,然后仅在真实代码中(而不是在测试中)调用self.file_dialog.exec_()