[Tutor] Command line scripts

David Abbott david at pythontoo.com
Thu Jan 13 04:23:40 CET 2011


On Wed, Jan 12, 2011 at 9:29 PM, David Hutto <smokefloat at gmail.com> wrote:
> On Sun, Jan 9, 2011 at 9:03 AM, ALAN GAULD <alan.gauld at btinternet.com> wrote:
>>
>>
>>> The following line is what I mean by calling a  command line from within the
>>>app
>>> using subprocess.
>>>
>>> self.espeak =  subprocess.Popen(['espeak', word],stdout  =
>>> subprocess.PIPE).communicate()[0]
>>

I came up with this as an example, I am still learning also :)

[code]
#!/usr/bin/python

# wx python + espeak

from subprocess import call
import sys
import wx

class ESpeak(wx.Dialog):
    def __init__(self, parent, id, title):
        wx.Dialog.__init__(self, parent, id, title, size=(360, 370))

        panel = wx.Panel(self, -1)
        vbox = wx.BoxSizer(wx.VERTICAL)
        hbox1 = wx.BoxSizer(wx.HORIZONTAL)

        st1 = wx.StaticText(panel, -1, 'Enter Saying: ')

        self.tc1 = wx.TextCtrl(panel, -1, size=(180, -1))

        button_send = wx.Button(panel, 1, 'Say')

        hbox1.Add(st1, 0, wx.LEFT, 10)
        hbox1.Add(self.tc1, 0, wx.LEFT, 10)

        vbox.Add(hbox1, 0, wx.TOP, 50)
        vbox.Add(button_send, 0, wx.ALIGN_CENTER | wx.TOP | wx.TOP |
wx.BOTTOM, 100)

        self.Bind(wx.EVT_BUTTON, self.OnSpeak, id=1)
        panel.SetSizer(vbox)

        self.Centre()
        self.ShowModal()
        self.Destroy()

    def OnSpeak(self, event):
        say = self.tc1.GetValue()
        if say != "":
            espeak = "/usr/bin/espeak"
            call([espeak, say])
        else:
            dlg = wx.MessageDialog(self, 'What did you say?', 'Error',
wx.OK | wx.ICON_ERROR)
            dlg.ShowModal()
            dlg.Destroy()

app = wx.App()
ESpeak(None, -1, 'wxESpeak')
app.MainLoop()
[/code]

-david


More information about the Tutor mailing list