datei in gv öffnen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
decaf
User
Beiträge: 2
Registriert: Dienstag 16. Februar 2010, 22:26

hallo,

da ich ein python-neuling bin, komme ich mit einem wohl sehr einfachen problem einfach nicht zurecht.

ich versuche in wx ein kleines programm zu schreiben, welches verschiedene dateien vom system in ghostview öffnen kann.

als einstieg dazu habe ich den code für den editor benutzt von http://wiki.wxpython.org/index.cgi/Anot ... ial#Editor

die datei bzw der inhalt der datei, die man auswählt, wird dann im editor angezeigt:

def OnSaveAsFile(self, event):
wcd='All files(*)|*|Editor files (*.ef)|*.ef|'
dir = os.getcwd()
save_dlg = wx.FileDialog(self, message='Save file as...', defaultDir=dir, defaultFile='',
wildcard=wcd, style=wx.SAVE | wx.OVERWRITE_PROMPT)
if save_dlg.ShowModal() == wx.ID_OK:
path = save_dlg.GetPath()

try:
file = open(path, 'w')
text = self.text.GetValue()
file.write(text)
file.close()
self.last_name_saved = os.path.basename(path)
self.statusbar.SetStatusText(self.last_name_saved + ' saved', 0)
self.modify = False
self.statusbar.SetStatusText('', 1)

except IOError, error:
dlg = wx.MessageDialog(self, 'Error saving file\n' + str(error))
dlg.ShowModal()
save_dlg.Destroy()

meine frage und große bitte: wie kann ich die dateien mit gv (linux) öffnen?
bin nunmehr richtig schön verzweifelt und hoffe, mir kann jemand mit einem tip weiterhelfen...
vielen dank im voraus
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Bitte nutze Code-Tags! Es ist wirklich schwer, dein Schnippsel so zu lesen.

Bzgl. gv:

Code: Alles auswählen

subprocess.Popen(["gv", "bla.ps"])
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
decaf
User
Beiträge: 2
Registriert: Dienstag 16. Februar 2010, 22:26

sorry, kannte mich nicht aus.
vielen dank für deine schnelle antwort.
der angegebene code ist nur ein ausschnitt aus dem oben angegebenen link.

Code: Alles auswählen

def OnOpenFile(self, event):
        file_name = os.path.basename(self.last_name_saved)
        if self.modify:
            dlg = wx.MessageDialog(self, 'Save changes?', '', wx.YES_NO | wx.YES_DEFAULT | wx.CANCEL |
                        wx.ICON_QUESTION)
            val = dlg.ShowModal()
            if val == wx.ID_YES:
                self.OnSaveFile(event)
                self.DoOpenFile()
            elif val == wx.ID_CANCEL:
                dlg.Destroy()
            else:
                self.DoOpenFile()
        else:
            self.DoOpenFile()

    def DoOpenFile(self):
        wcd = 'All files (*)|*|Editor files (*.ef)|*.ef|'
        dir = os.getcwd()
        open_dlg = wx.FileDialog(self, message='Choose a file', defaultDir=dir, defaultFile='',
                        wildcard=wcd, style=wx.OPEN|wx.CHANGE_DIR)
        if open_dlg.ShowModal() == wx.ID_OK:
            path = open_dlg.GetPath()

            try:
                file = open(path, 'r')
                text = file.read()
                file.close()
                if self.text.GetLastPosition():
                    self.text.Clear()
                self.text.WriteText(text)
                self.last_name_saved = path
                self.statusbar.SetStatusText('', 1)
                self.modify = False

            except IOError, error:
                dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error))
                dlg.ShowModal()

            except UnicodeDecodeError, error:
                dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error))
                dlg.ShowModal()

        open_dlg.Destroy()


entschuldige dass ich nochmal so frage:
wo genau kommt das

Code: Alles auswählen

subprocess.Popen(["gv", "bla.ps"]) hin?
vielen dank & gruß
Benutzeravatar
/me
User
Beiträge: 3560
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

decaf hat geschrieben:entschuldige dass ich nochmal so frage:
wo genau kommt das

Code: Alles auswählen

subprocess.Popen(["gv", "bla.ps"]) hin?
Da wo du diesen Aufruf durchführen möchtest.
Antworten