Aloin sitten muutama päivä aikaa tutustumaan pythoniin koska käsitin sen olevan koht yksinkertainen tapa tehdä GUI:ta ja eipä ollut muutenkaan mitään koodauskokemusta, noh saimpas jo ensimmäiset "koodaukset" tehtyä :)
Mielenkiintoinen kieli, mutta suomalaista dokumentaatiota on aikalti niukasti, engelska välillä haroo inan vastaan. Uudenkaupungin kirjastossa oli tasan yksi kirja joka maintsi Pythonin nimeltään: Java, Prolog, Python: Tehokas näkökulma ohjelmointiin, siinä oli sitten puolet kirjaa javaa ja 2 (kaksi) lukua pythonille, takaosassa oli vielä Ruby:llekkin enemmän tekstiä vaikkei sitä tuossa kannessa edes mainita :)
Niin ja kumminkin takasin asiaan, tuli ongelmaksi tuossa minun ns. ohjelmassani(jonka tein siis sekä tk:lla että wxpythonilla), notta ne tilttaa. kyseessähän on ihan yksinkertainen käynnistin FST ja VSTHost ohjelmille jotka ovat linuxin VST-pluginin hosteja, googlatkaa Steinberg jos ei sano mitään. Molemmat versiot jää jumiin kun vst käynnistyy ja alkaa sitten taas toimia kun sammutan sen.
os.system(vstprog " " vstdir selectedvst)
tuollaisella hienolla komennolla käynnistän ja pistän tuon koodinkin tähän vielä pian.
Ja toinen ongelma tulee tuossa wxPythonin listboxissa mistä valitsen sen VST-pluginin, niin miten siihen saa näkymään vain DLL tiedostot?
minulla menee tuon haku jota kuinkin näin
vstdir = "/home/maike/.wine/drive_c/VSTPlugins/"
input = file("test.txt", "w")
for name in os.listdir(vstdir):
input.write(name "\n")
del input
ja sitten toisessa kohtaa notta.
self.vstlist = wx.ListBox(self, -1, choices=[])
output = file("test.txt", "r")
for line in output:
self.vstlist.Append(line)
Mielenkiintoinen kieli, mutta suomalaista dokumentaatiota on aikalti niukasti, engelska välillä haroo inan vastaan. Uudenkaupungin kirjastossa oli tasan yksi kirja joka maintsi Pythonin nimeltään: Java, Prolog, Python: Tehokas näkökulma ohjelmointiin, siinä oli sitten puolet kirjaa javaa ja 2 (kaksi) lukua pythonille, takaosassa oli vielä Ruby:llekkin enemmän tekstiä vaikkei sitä tuossa kannessa edes mainita :)
Niin ja kumminkin takasin asiaan, tuli ongelmaksi tuossa minun ns. ohjelmassani(jonka tein siis sekä tk:lla että wxpythonilla), notta ne tilttaa. kyseessähän on ihan yksinkertainen käynnistin FST ja VSTHost ohjelmille jotka ovat linuxin VST-pluginin hosteja, googlatkaa Steinberg jos ei sano mitään. Molemmat versiot jää jumiin kun vst käynnistyy ja alkaa sitten taas toimia kun sammutan sen.
os.system(vstprog " " vstdir selectedvst)
tuollaisella hienolla komennolla käynnistän ja pistän tuon koodinkin tähän vielä pian.
Ja toinen ongelma tulee tuossa wxPythonin listboxissa mistä valitsen sen VST-pluginin, niin miten siihen saa näkymään vain DLL tiedostot?
minulla menee tuon haku jota kuinkin näin
vstdir = "/home/maike/.wine/drive_c/VSTPlugins/"
input = file("test.txt", "w")
for name in os.listdir(vstdir):
input.write(name "\n")
del input
ja sitten toisessa kohtaa notta.
self.vstlist = wx.ListBox(self, -1, choices=[])
output = file("test.txt", "r")
for line in output:
self.vstlist.Append(line)
Vastaukset 6
Vanhimmat
wxPython Versio.
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# generated by wxGlade 0.4cvs on Fri Nov 10 02:41:06 2006
import wx
import os
vstdir = "/home/maike/.wine/drive_c/VSTPlugins/"
input = file("test.txt", "w")
for name in os.listdir(vstdir):
input.write(name "\n")
del input
class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
# begin wxGlade: MyFrame.__init__
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.fst = wx.RadioButton(self, -1, "FST")
self.vsthost = wx.RadioButton(self, -1, "VSTHost")
self.launch = wx.Button(self, -1, "Launch")
self.vstlist = wx.ListBox(self, -1, choices=[])
output = file("test.txt", "r")
for line in output:
self.vstlist.Append(line)
self.__set_properties()
self.__do_layout()
self.Bind(wx.EVT_RADIOBUTTON, self.vstset("fst"), self.fst)
self.Bind(wx.EVT_RADIOBUTTON, self.vstset("vsthost"), self.vsthost)
self.Bind(wx.EVT_BUTTON, self.start, self.launch)
self.Bind(wx.EVT_LISTBOX_DCLICK, self.sel, self.vstlist)
self.Bind(wx.EVT_LISTBOX, self.choose, self.vstlist)
# end wxGlade
def __set_properties(self):
# begin wxGlade: MyFrame.__set_properties
self.SetTitle("VST Launch Kit")
# end wxGlade
def __do_layout(self):
# begin wxGlade: MyFrame.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_1.Add(self.fst, 0, wx.ADJUST_MINSIZE, 0)
sizer_1.Add(self.vsthost, 0, wx.ADJUST_MINSIZE, 0)
sizer_1.Add(self.launch, 0, wx.ADJUST_MINSIZE, 3)
sizer_1.Add(self.vstlist, 0, wx.ADJUST_MINSIZE, 0)
self.SetAutoLayout(True)
self.SetSizer(sizer_1)
sizer_1.Fit(self)
sizer_1.SetSizeHints(self)
self.Layout()
self.Centre()
# end wxGlade
def vstset(self, event): # wxGlade: MyFrame.
global vstprog
vstprog = event
def start(self, event): # wxGlade: MyFrame.
os.system(vstprog " " vstdir selectedvst)
def choose(self, event): # wxGlade: MyFrame.
global selectedvst
n = self.vstlist.GetSelection()
selectedvst = self.vstlist.GetString(n)
def sel(self, event): # wxGlade: MyFrame.
global selectedvst
n = self.vstlist.GetSelection()
selectedvst = self.vstlist.GetString(n)
os.system(vstprog " " vstdir selectedvst)
# end of class MyFrame
class MyApp(wx.App):
def OnInit(self):
wx.InitAllImageHandlers()
frame = MyFrame(None, -1, "")
self.SetTopWindow(frame)
frame.Show()
return 1
# end of class MyApp
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()
ja tässä tk versio
from Tkinter import *
import tkMessageBox
import os
import tkFileDialog
vstdir = '/home/maike/.wine/drive_c/VSTPlugins'
vst = 'fst'
vstlist = os.listdir("/home/maike/.wine/drive_c/VSTPlugins/")
def setvst(x):
global vst
vst = x
def launch():
b = tkFileDialog.askopenfilename(initialdir=vstdir)
os.system(vst " " b)
root = Tk()
v = IntVar()
Radiobutton(root, text="FST", variable=v, value=1, command=setvst('fst')).pack(anchor=W)
Radiobutton(root, text="VSTHost", variable=v, value=2, command=setvst('vsthost')).pack(anchor=W)
v.set("1")
b = Button(root, text="Launch", command=launch)
b.pack(fill=BOTH, expand=1)
mainloop()
Ongelma lienee se, että "os.system" komennosta palataan vasta sitten kun se on suoritettu, (eli tapauksessasi ohjelma odottaa VST:n sammumista). Windows:ssa on "start" käsky jolla voi avata erillisen ikkunan/prosessin ohjelman suorittamista varten, jolloin varsinaista jumiutumista ei tapahdu, (esim. os.system("start c:\windows\notepad.exe")). En tiedä mikä Linuksissa ajaa vastaavaa asiaa, (oliko siinä joku '&' -merkki joka piti lisätä rivin perään, tms).
&-merkki toimii. Siis esim :
import os
os.system("xterm &")
os.system("gedit &")
Käynnistää xterm- ja gedit-ohjelmat.
http://lanuevadestileria.iespana.es/imagenes/merda.jpg
5v tai jotain..iha fiksuu juttuu taas...kaikkia ei ehkä ees ns."oikea" koodaus kiinnostakkaan vaan haluu vaan vähän leikkiä vai luuletko että oikeesti meinaan jotain tuon tyylistä "ohjelmaa" julkaistakkin ja väsätä siihen jotain suuria?