Python で GTK を使用しています。SAVE AS は簡単ですが、何らかの理由でファイルを SAVE できないことに気付きました。保存されたかどうかを確認してから保存するように設定したと思いましたが、何らかの理由で、ファイル名の値を保存せずに関数を何度も再起動します。私を殺しているのは、これが初心者の間違いのように感じられることです. どういうわけか、関数が実行された後に値を保持するのを忘れていました。これが理にかなっていることを願っています。
def SaveFile(filename):
chooser = gtk.FileChooserDialog("Save File...", None,
gtk.FILE_CHOOSER_ACTION_SAVE,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_SAVE, gtk.RESPONSE_OK))
filename = chooser.get_filename()
if filename == None:
response = chooser.run()
if response == gtk.RESPONSE_OK:
filename = chooser.get_filename()
chooser.destroy()
wbuffer = textview.get_buffer()
text = wbuffer.get_text(wbuffer.get_start_iter(), wbuffer.get_end_iter())
openfile = open(filename,"w")
openfile.write(text)
openfile.close()
print filename, "this is the first part"
return filename
else:
chooser.destroy()
elif filename != None:
wbuffer = textview.get_buffer()
text = wbuffer.get_text(wbuffer.get_start_iter(), wbuffer.get_end_iter())
openfile = open(filename,"w")
openfile.write(text)
openfile.close()
print filename, "made it this far"
return filename
else:
chooser.destroy()
return filename