will mich gerade in Python einarbeiten. Habe bisher nur vb.net (bisschen c#) programmiert.
Dazu möchte ich mir eine kleine Oberfläche schreiben, die ein Programm ausführt (in meinem Fall ffmpeg). Ich habe mir eine kleine Oberfläche gemacht, die entweder eine Datei oder ein Verzeichnis auswählt, ein Zielverzeichnis angegeben wird, das Format und dann solls losgehen.
Das Programm soll mir helfen, python besser zu verstehen. Deswegen ist es auch aufs Einfachste gehalten.
Hier mal der Code:
Code: Alles auswählen
#!/usr/bin/env python
import wx
import os
class gui(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(300, 170))
panel = wx.Panel(self, -1)
wx.Button(panel, 100, "Oeffne Datei", (10,10), style=wx.RB_GROUP)
wx.Button(panel, 101, "Oeffne Verzeichnis", (10,40))
wx.Button(panel, 102, "&Ende", (10,70))
wx.Button(panel, 103, "Zielverzeichnis", (150, 10))
rb1 = wx.RadioButton(panel, 104, "dvd", (150, 40))
rb2 = wx.RadioButton(panel, 105, "svcd", (150, 70))
self.radiobuttons = [rb1, rb2]
for r in [rb1, rb2]:
wx.EVT_RADIOBUTTON(r, r.GetId(), self.radioStatus)
wx.Button(panel, 106, "&START", (150,100))
self.CentreOnScreen()
self.Bind(wx.EVT_BUTTON, self.openfile, id=100)
self.Bind(wx.EVT_BUTTON, self.opendir, id=101)
self.Bind(wx.EVT_BUTTON, self.schliessen, id=102)
self.Bind(wx.EVT_BUTTON, self.opendestination, id=103)
self.Bind(wx.EVT_RADIOBUTTON, self.on_select, id=104)
self.Bind(wx.EVT_RADIOBUTTON, self.on_select, id=105)
self.Bind(wx.EVT_BUTTON, self.go, id=106)
def openfile(self, event):
dlg = wx.FileDialog(self, "Waehle eine Datei", os.getcwd(), "", "*.*", wx.OPEN)
dlg.SetWildcard('*.py')
if dlg.ShowModal() == wx.ID_OK:
path = dlg.GetPath()
mypath = os.path.basename(path)
pfad = self.start(dlg.GetPath() + "\\" + mypath)
return pfad
dlg.Destroy()
def opendir(self, event):
dlg = wx.DirDialog(self, "Waehle ein Verzeichnis:", style=wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON)
if dlg.ShowModal() == wx.ID_OK:
self.start(dlg.GetPath())
def schliessen(self, event):
self.Close()
def opendestination(self, event):
dlg = wx.DirDialog(self, "Waehle ein Zielverzeichnis:", style=wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON)
if dlg.ShowModal() == wx.ID_OK:
return dlg.GetPath()
def start(self,wert):
print wert
def on_select(self, event):
pass
def radioStatus(self, event):
pass
def go(self, event):
if self.radiobuttons[0].GetValue() == True:
print "dvd"
else:
print "svcd"
class App(wx.App):
def OnInit(self):
frame = gui(None, -1, "gude")
frame.Show(True)
frame.CentreOnScreen()
return True
app = App(0)
app.MainLoop()
Aber wie kann ich die Variablen in den einzelnen Funktionen aufrufen ?
Ich bekomm immer nur gesagt, das es die Variable/Funktion nicht gibt....
Helft einem dummen Anfänger
Gruss
Ralf