wxPython beginners problem

Discussion in 'Python' started by Ivan Reborin, Aug 15, 2008.

  1. Ivan Reborin

    Ivan Reborin Guest

    Hello all,

    I'm new to python, new as newbies get, so please, don't take wrongly
    if this seems like a stupid or overly simple question.

    I'm going through examples in a book I have ("Beginning python", by
    Hetland Marcus) and I just started doing wxPython examples.

    But every sample I try, for example:

    import wx
    app = wx.App()
    win = wx.Frame(None, title="Simple editor")
    loadButton = wx.Button(win, label='Open')
    saveButton = wx.Button(win, label='Save')
    win.Show
    app.MainLoop()

    closes too fast. After running in python IDLE just the line
    === restart ===
    shows up.

    How can I keep the window to "stay alive" so I see what I get ?
    I'm on a winxp platform using python 2.5.2. if that matters.

    Please, any help, constructive advice and ideas are very much
    appreciated.

    Best regards
    Ivan Reborin
     
    Ivan Reborin, Aug 15, 2008
    #1
    1. Advertising

  2. Ivan Reborin

    Ivan Reborin Guest

    On Fri, 15 Aug 2008 18:31:16 +0200, Ivan Reborin <>
    wrote:

    >Hello all,
    >
    >I'm new to python, new as newbies get, so please, don't take wrongly
    >if this seems like a stupid or overly simple question.
    >
    >I'm going through examples in a book I have ("Beginning python", by
    >Hetland Marcus) and I just started doing wxPython examples.
    >
    >But every sample I try, for example:
    >
    >import wx
    >app = wx.App()
    >win = wx.Frame(None, title="Simple editor")
    >loadButton = wx.Button(win, label='Open')
    >saveButton = wx.Button(win, label='Save')
    >win.Show
    >app.MainLoop()
    >
    >closes too fast. After running in python IDLE just the line
    >=== restart ===
    >shows up.
    >
    >How can I keep the window to "stay alive" so I see what I get ?
    >I'm on a winxp platform using python 2.5.2. if that matters.
    >
    >Please, any help, constructive advice and ideas are very much
    >appreciated.
    >
    >Best regards
    >Ivan Reborin


    I would just add that actually the process doesn't finish at all. When
    I look at the task manager, the process pythonw.exe stays there (about
    22mb memory).

    Tkinter examples work on the other hand.

    And, just another question, if I may while I'm here. The reason that
    I'm learning python (apart from finishing my degree :) is that I'm
    trying to create a gui for my fortran subroutines:
    - back calculating in fortran, very time consuming processes (about
    15min per calculation on 2ghz dual core cpu, and I have a lot of
    those) so I'm not even thinking of doing it in any other languages,
    and a gui in python which will have to draw some x-y diagrams as a
    result of the calculation
    I choose python because I like the syntax and 'its way of thinking',
    and because I've heard it has a good reputation of 'getting along'
    with other languages.

    Has anyone done something like this ? Is there any differences,
    advantages and disadvantages against one or the other gui-s currently
    available (i like wxpython and tkinter for now, as I've heard a lot of
    good comments about them) ?

    I would appreciate your opinion, if you can spare the time. All
    comments would be greatly appreciated.

    Best regards
    Ivan Reborin

    p.s. Sorry if my english is not so good. It's not my main language,
    actually, not even my secondary language :-( but I'm trying to improve
    it.
     
    Ivan Reborin, Aug 15, 2008
    #2
    1. Advertising

  3. Ivan Reborin

    Brian Victor Guest

    Ivan Reborin wrote:
    > win.Show


    This line isn't doing anything. It needs to be:
    win.Show() # note the parentheses

    --
    Brian
     
    Brian Victor, Aug 15, 2008
    #3
  4. Ivan Reborin

    Guest

    On Aug 15, 11:31 am, Ivan Reborin <> wrote:
    > Hello all,
    >
    > I'm new to python, new as newbies get, so please, don't take wrongly
    > if this seems like a stupid or overly simple question.
    >
    > I'm going through examples in a book I have ("Beginning python", by
    > Hetland Marcus) and I just started doing wxPython examples.
    >
    > But every sample I try, for example:
    >
    > import wx
    > app = wx.App()
    > win = wx.Frame(None, title="Simple editor")
    > loadButton = wx.Button(win, label='Open')
    > saveButton = wx.Button(win, label='Save')
    > win.Show
    > app.MainLoop()
    >


    There are a couple of things you're missing. Here is the fix:

    import wx

    # First of all, I'd recommend you to pass False as
    # the 'redirect' parameter, so that any errors appear
    # on the console
    app = wx.App(redirect=False)

    win = wx.Frame(None, title="Simple editor")
    loadButton = wx.Button(win, label='Open')
    saveButton = wx.Button(win, label='Save')

    # Now you need to set the frame as the top-level
    # window

    app.SetTopWindow(frame)

    # In the line
    #
    # win.Show
    #
    # Python recognizes this as a method, but you're
    # not calling it, so its value is discarded. It's
    # a meaningless, albeit legal statement.

    win.Show()

    # Now, let the fun begin
    app.MainLoop()

    # Sebastian
     
    , Aug 15, 2008
    #4
  5. On Aug 15, 11:31 am, Ivan Reborin <> wrote:
    > Hello all,
    >
    > I'm new to python, new as newbies get, so please, don't take wrongly
    > if this seems like a stupid or overly simple question.
    >
    > I'm going through examples in a book I have ("Beginning python", by
    > Hetland Marcus) and I just started doing wxPython examples.
    >
    > But every sample I try, for example:
    >
    > import wx
    > app = wx.App()
    > win = wx.Frame(None, title="Simple editor")
    > loadButton = wx.Button(win, label='Open')
    > saveButton = wx.Button(win, label='Save')
    > win.Show
    > app.MainLoop()
    >
    > closes too fast. After running in python IDLE just the line
    > === restart ===
    > shows up.
    >
    > How can I keep the window to "stay alive" so I see what I get ?
    > I'm on a winxp platform using python 2.5.2. if that matters.
    >
    > Please, any help, constructive advice and ideas are very much
    > appreciated.
    >
    > Best regards
    > Ivan Reborin


    See what Brian said about your issue. As for whether or not this
    toolkit is for you, that's a subjective question. Try them both and
    see which one suits you. I like wx better, but I needed its widgets
    for what I was doing and Tkinter didn't seem to have what I needed at
    the time.

    Anyway, wxPython has an excellent user's group, where you can learn
    lots and the group is nice to new people too!

    http://wxpython.org/maillist.php

    Mike
     
    Mike Driscoll, Aug 15, 2008
    #5
  6. Ivan Reborin

    Ivan Reborin Guest

    On Fri, 15 Aug 2008 17:48:39 +0000 (UTC), Brian Victor
    <> wrote:

    >Ivan Reborin wrote:
    >> win.Show

    >
    >This line isn't doing anything. It needs to be:
    >win.Show() # note the parentheses


    Yes, that was the problem. I must've been tired while writing it, for
    I haven't noticed it after several repetitions.
    Thank you (and everyone else on their useful comments and
    suggestions).

    Best regards
    Ivan
     
    Ivan Reborin, Aug 16, 2008
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Anand
    Replies:
    1
    Views:
    362
    Cliff Wells
    Jul 23, 2003
  2. ulysses
    Replies:
    4
    Views:
    786
    Werner Schiendl
    Oct 22, 2003
  3. Logan
    Replies:
    5
    Views:
    777
    David Bolen
    Dec 11, 2003
  4. Ruben Charles
    Replies:
    6
    Views:
    508
    =?ISO-8859-1?Q?Michael_Str=F6der?=
    Oct 25, 2005
  5. Jolley
    Replies:
    1
    Views:
    1,210
    Jolley
    Nov 23, 2006
Loading...

Share This Page