繁体   English   中英

有没有办法使QtGui.QFileDialog.getSaveFileName在PyQt中成为条件?

[英]Is there a way to make the QtGui.QFileDialog.getSaveFileName as conditional in PyQt?

因此,在我的代码中,我有一个简单的getSaveFileName对话框,如下所示:

saveFileName = QtGui.QFileDialog.getSaveFileName(self, "Save File","/some/file/directory/")

在对话框中,如果您尝试覆盖文件,则对话框关闭前,对话框将提示消息框,提示“是否确定要重写”。 我想实现同一件事,但条件不同。 我想检查文件是否在特定位置,如果要在文件中抛出错误,请使用yes | 没问题,结果与出现覆盖消息时相同。 对话框关闭之前,有没有一种方法可以实现? 关闭后我已经有办法了,但这是不对的...

考虑一下:

class D(QtGui.QFileDialog):
    def __init__(self,parent=None):
        QtGui.QFileDialog.__init__(self,parent)
        self.currentChanged.connect(self.check_first)
        for bb in self.children():
            if bb.__class__ == QtGui.QDialogButtonBox:
                self.OK = bb.buttons()[0]
            if bb.__class__ == QtGui.QLineEdit:
                bb.textChanged.connect(self.check_first)

    def check_first(self, filestring):
        print "check"
        if os.path.exists(self.selectedFiles()[0]):
            self.OK.setEnabled(True)
            print "OK"
        else:
            self.OK.setEnabled(False)
            print "Not OK"

您可以将自己的支票放入check_first,在这种情况下,该文件就存在。 除了比较类,我找不到比子类更好的定位子窗口小部件的方法,但这似乎可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM