所以在我的代码中,我有一个简单的getSaveFileName对话框,如下所示:
saveFileName = QtGui.QFileDialog.getSaveFileName(self, "Save File","/some/file/directory/")
在对话框中,如果您尝试覆盖文件,对话框会在对话框关闭之前提示“是否确定要重写”的消息框。我想实现相同的东西,但条件不同。我想检查文件是否在特定位置,如果是,我想让它抛出一个带有yes |的错误毫无疑问,结果与覆盖消息出现时的结果相同。在对话框关闭之前有没有办法实现这个?我已经有办法在它关闭后这样做了,但这是不对的......
答案 0 :(得分:0)
考虑一下:
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,在这种情况下是文件的存在。我找不到比定位类更好的定位子小部件的方法,但这似乎有用。