2011-11-09 1 views
3

le code ci-dessous:wxpython boîte de dialogue Enregistrer le fichier donne un gtk alerte

#!/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() 

donne le message suivant sur mon terminal lorsque je tente d'enregistrer le fichier en donnant un nouveau test.txt nom dans la boîte de dialogue de fichier widget:

(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 

Malgré ce message, le fichier est enregistré correctement, mais je voudrais comprendre pourquoi le message se produit et comment l'éviter. Est-ce quelque chose qui dépend des bibliothèques gtk installées dans mon système? Je cours un essai de Debian avec gtk version 2.24 et python-wxgtk2.8.

Merci beaucoup.

Roberto

+0

Doc suggère wx.FD_SAVE non wx.SAVE. http://www.wxpython.org/docs/api/wx.FileDialog-class.html – AndrewStone

+0

Merci pour l'amélioration, même si cela n'affecte pas l'avertissement gtk. r. – robelix

Répondre

2

J'ai lu que certaines des distros wxPython sous Linux ont le débogage activé, ce qui est idéal pour savoir pourquoi quelque chose va mal, mais il montre aussi tous les avertissements GTK. Il semble que l'enregistrement du fichier soit correct, donc vous n'avez probablement pas besoin de vous en préoccuper. Vous pouvez demander sur la liste de diffusion wxPython pour une explication plus technique.

+0

Vous avez probablement raison, j'ai essayé le même code sur un système différent (machine ubuntu) et aucun avertissement n'apparaît ... mon seul doute est que je développe un logiciel GUI qui sera utilisé par les utilisateurs finaux, donc je voudrais pour éviter tout message confus possible quand ils vont exécuter l'application ... Merci! r. – robelix

+0

Eh bien, lorsque vous l'empaquetez, n'utilisez pas la version de débogage de wx –

+0

Y at-il un commutateur que nous pouvons définir quelque part pour éviter cela, ou cela signifie-t-il reconstruire la bibliothèque? –

0

Peut-être que Gtk vérifie par défaut si le fichier existe déjà, afin qu'il ne soit pas écrasé directement.

Questions connexes