Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #35681 > unrolled thread

Re: learning curve

Started byTerry Reedy <tjreedy@udel.edu>
First post2012-12-28 03:26 -0500
Last post2012-12-28 03:26 -0500
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: learning curve Terry Reedy <tjreedy@udel.edu> - 2012-12-28 03:26 -0500

#35681 — Re: learning curve

FromTerry Reedy <tjreedy@udel.edu>
Date2012-12-28 03:26 -0500
SubjectRe: learning curve
Message-ID<mailman.1385.1356683244.29569.python-list@python.org>
On 12/27/2012 8:20 PM, Verde Denim wrote:
> Just getting into Py coding and not understanding why this code doesn't
> seem to do anything -

Part of your 'learning curve' should be learning to write informative 
subjects lines. The above says almost nothing. For this I suggest 
"Problem with classes and tkinter". In this case, you specifically need 
to add the tkinter startup code; check the example in the manual. If you 
do add that, you code may run, but it may required advice with someone 
with tkinter expertise (and interest) beyond mind.

Also, if you are just starting, I recommend you start with 3.3 unless 
you have a good reason to start with an older version. (IE, you need to 
use a third party library that only runs with 2.x.)

> # File: dialog2.py
> import dialog_handler
>
> class MyDialog(dialog_handler.Dialog):
>      def body(self, master):
>          Label(master, text="First:").grid(row=0)
>          Label(master, text="Second:").grid(row=1)
>          self.e1 = Entry(master)
>          self.e2 = Entry(master)
>          self.e1.grid(row=0, column=1)
>          self.e2.grid(row=1, column=1)
>          return self.e1 # initial focus
>
>      def apply(self):
>          first = string.atoi(self.e1.get())
>          second = string.atoi(self.e2.get())
>          print first, second # or something
>
> # File: dialog_handler.py
>
> from Tkinter import *
> import os
>
> class Dialog(Toplevel):
>
>      def __init__(self, parent, title = None):
>          Toplevel.__init__(self, parent)
>          self.transient(parent)
>
>          if title:
>              self.title(title)
>          self.parent = parent
>          self.result = None
>          body = Frame(self)
>          self.initial_focus = self.body(body)
>          body.pack(padx=5, pady=5)
>          self.buttonbox()
>          self.grab_set()
>
>          if not self.initial_focus:
>              self.initial_focus = self
>
>          self.protocol("WM_DELETE_WINDOW", self.cancel)
>          self.geometry("+%d+%d" % (parent.winfo_rootx()+50,
>                                    parent.winfo_rooty()+50))
>          self.initial_focus.focus_set()
>          self.wait_window(self)
>
>          #
>          # construction hooks
>          def body(self, master):
>              # create dialog body.  return widget that should have
>              # initial focus.  this method should be overridden
>              pass
>
>          def buttonbox(self):
>              # add standard button box. override if you don't want the
>              # standard buttons
>              box = Frame(self)
>
>              w = Button(box, text="OK", width=10, command=self.ok,
>                         default=ACTIVE)
>              w.pack(side=LEFT, padx=5, pady=5)
>              w = Button(box, text="Cancel", width=10,
>                         command=self.cancel)
>              w.pack(side=LEFT, padx=5, pady=5)
>
>              self.bind("&lt;Return>", self.ok)
>              self.bind("&lt;Escape>", self.cancel)
>
>              box.pack()
>
>          #
>          # standard button semantics
>          def ok(self, event=None):
>              if not self.validate():
>                  self.initial_focus.focus_set() # put focus back
>                  return
>              self.withdraw()
>              self.update_idletasks()
>              self.apply()
>              self.cancel()
>
>          def cancel(self, event=None):
>              # put focus back to the parent window
>              self.parent.focus_set()
>              self.destroy()
>
>          #
>          # command hooks
>          def validate(self):
>              return 1 # override
>
>          def apply(self):
>              pass # override
>


-- 
Terry Jan Reedy

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web