3

以下のコード:

#!/usr/bin/env python

import wx

class MyForm(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY,
                          "File and Folder Dialogs Tutorial")
        panel = wx.Panel(self, wx.ID_ANY)

        saveFileDlgBtn = wx.Button(panel, label="Show SAVE FileDialog")
        saveFileDlgBtn.Bind(wx.EVT_BUTTON, self.onSaveFile)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(saveFileDlgBtn, 0, wx.ALL|wx.CENTER, 5)
        panel.SetSizer(sizer)



    def onSaveFile(self, event):
        """
        Create and show the Save FileDialog
        """
        dlg = wx.FileDialog(
            self, message="Save file as ...",
            defaultDir=".",
            defaultFile="", wildcard="*.*", style=wx.SAVE
            )
        if dlg.ShowModal() == wx.ID_OK:
            path = dlg.GetPath()
            print path
            fp = open(path, 'w')
            fp.write("bau bau")
            fp.close()

        dlg.Destroy()


if __name__ == "__main__":
    app = wx.App(False)
    frame = MyForm()
    frame.Show()
    app.MainLoop()

ファイル ダイアログ ウィジェットから新しい名前 test.txt を指定してファイルを保存しようとすると、端末に次のメッセージが表示されます。

(python:16795): Gtk-WARNING **: Unable to retrieve the file info for `file:///home/roberto/python/test.txt': Error stating file '/home/roberto/python/test.txt': No such file or directory

このメッセージにもかかわらず、ファイルは正しく保存されていますが、メッセージが表示される理由と回避方法を理解したいと思います。これはシステムにインストールされている gtk ライブラリに依存するものですか? 私は gtk バージョン 2.24 と python-wxgtk2.8 で debian テストを実行しています。

どうもありがとうございました。

ロベルト

4

2 に答える 2

2

Linux 上の wxPython ディストリビューションの一部でデバッグが有効になっていることを読みました。これは、問題が発生した理由を知るのに最適ですが、すべての gtk 警告も表示されます。ファイルが正しく保存されているように見えるので、おそらく心配する必要はありません。より技術的な説明については、wxPython メーリング リストで質問できます。

于 2011-11-09T14:46:28.667 に答える
0

おそらく、Gtk はファイルが既に存在するかどうかをデフォルトで検証しているため、直接上書きされることはありません。

于 2011-12-07T11:03:05.617 に答える