Seite 1 von 1

Datei öffnen Dialog

Verfasst: Montag 2. April 2007, 13:50
von rednose
Hallo zusammen,
ich habe zu dem Thema hier zwei ältere threads gefunden, aber sooo hilfreich waren die nicht.
Ich habe bisher ein wenig Python scripts geschrieben und möchte jetzt gerne eine Windows - Anwendung schreiben,
in der ich zum Beispiel eine Datei über den gewohnten (oder ähnlichen) Dialog öffnen und auch speichern kann.
Auf meiner google-Tour habe ich was über Tkinter und wxPython gefunden, weiß allerdings immer noch nicht, wie, wozu, welches, etc.
Bei wxPython scheint es etwas zu geben, ich habe da in einem Beispiel eine Zeile "dlg = wxFileDialog(self)" gefunden.
Beim Versuch, das und die folgenden Anweisungen in meinem Script einzubinden, bekam ich die Fehlermeldung:
NameError: name 'wxFileDialog' is not defined
Ich benutze Python 2.4 und wxPython2.8-win32-unicode-2.8.3.0-py24.
Kann mir jemand sagen, wo vielleicht der Fehler ist, oder ob es eine andere Möglichkeit gibt, mit Python unter Windows Dateien über Dialog zu öffnen?

Gruß

Michael

Re: Datei öffnen Dialog

Verfasst: Montag 2. April 2007, 14:10
von Francesco

Code: Alles auswählen

import wx
d = wx.FileDialog(...)
d.ShowModal()
Wenn Du das in dieser Form aufrufst, müsste es klappen.

Verfasst: Montag 2. April 2007, 14:36
von rednose
Ich hab' jetzt auf 2.5 inclusive dem dazugehörigen wxPython umgestellt,
da ich nur warnings und Fehler bekam.
Hat sich allerdings leider nicht verändert:

Wenn ich das so mache:

Code: Alles auswählen

import wx
d = wxFileDialog ( None, style = wxOPEN )
d.ShowModal()
bekomme ich folgende Meldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "F:\Python25\TestOpenFiles.py", line 2, in <module>
    d = wxFileDialog ( None, style = wxOPEN )
NameError: name 'wxFileDialog' is not defined
Ich hatte dieses Beispiel gewählt:

Code: Alles auswählen

from wxPython.wx import *

application = wxPySimpleApp()

# Create an open file dialog

dialog = wxFileDialog ( None, style = wxOPEN )

# Show the dialog and get user input

if dialog.ShowModal() == wxID_OK:

   print 'Selected:', dialog.GetPath()

# The user did not select anything

else:

   print 'Nothing was selected.'

# Destroy the dialog

dialog.Destroy()
Der open file dialog erschien dann zwar, aber ich bekam ständig die warning:

Code: Alles auswählen

Warning (from warnings module):
  File "F:/Python25/TestOpenFiles02.py", line 1
    from wxPython.wx import *
DeprecationWarning: The wxPython compatibility package is no longer automatically generated or actively maintained.  Please switch to the wx package as soon as possible.
Damit konnte ich nix anfangen, weil ich ja das Neueste von wxPython.org runtergeladen hatte...

Wenn ich aber import wx schreibe, kennt er die Module nicht....
Watt nu?

Gruß

Michael

Verfasst: Montag 2. April 2007, 14:50
von Francesco
Das ist der Nachteil, wenn alte Dokus noch im Netz sind.

Man beachte den Punkt nach wx.FileDialog und wx.Open:
statt:
d = wxFileDialog ( None, style = wxOPEN )
also:
d = wx.FileDialog ( None, style = wx.OPEN )

Hilfreich ist auch immer das Demo, falls du es noch nicht heruntergeladen hast. Da kannst du auch den Code (zum Testen) ändern und diesen dann ausführen.

Verfasst: Montag 2. April 2007, 15:13
von rednose
Vielen Dank! :D
So funktionierts Fehler- und Warning-frei:

Code: Alles auswählen

import wx

application = wx.PySimpleApp()

# Create an open file dialog

dialog = wx.FileDialog ( None, style = wx.OPEN )

# Show the dialog and get user input

if dialog.ShowModal() == wx.ID_OK:

   print 'Selected:', dialog.GetPath()

# The user did not select anything

else:

   print 'Nothing was selected.'

# Destroy the dialog

dialog.Destroy()
Ich kann ja leider nicht feststellen, was alt und was neu,
gültig, oder nicht mehr gültig ist, da ich Beides ja nicht kenne.

Übrigens, welches Demo meinst Du? Da sind bei Python und wxPython eine Reihe von Links, aber nach dem ersten Durchwühlen habe ich noch kein Demo gefunden.


Gruß

Michael

Verfasst: Montag 2. April 2007, 15:20
von Leonidas
rednose hat geschrieben:Übrigens, welches Demo meinst Du? Da sind bei Python und wxPython eine Reihe von Links, aber nach dem ersten Durchwühlen habe ich noch kein Demo gefunden.
In dem Paket wo die Dokumentation drin ist, ist auch ein großes Demoprogramm dabei, wo viele Widgets demonstriert werden und mit Code wie man sie nutzt. Die ist sehr praktisch und sehr empfehlenswert, wenn man mit wxPython programmieren will.

Verfasst: Montag 2. April 2007, 15:33
von rednose
Ohja, klasse.
Das war die Geschichte mit dem Wald und den Bäumen...ich hab' gerade den Augenarzttermin festgemacht.

Danke nochmal!