On Apr 16, 7:46 am, "Doran, Harold" <[EMAIL PROTECTED]> wrote: > I am currently reading An Intro to Tkinter (1999) by F. Lundh. This doc > was published in 1999 and I wonder if there is a more recent version. > I've googled a bit and this version is the one I keep finding. I like > how this document is organized and also how it provides the code with > visuals of what should appear on the screen. If there are other docs I > should read, please let me know.
There's some good Tkinter coverage in Lutz's tome, "Programming Python 3rd Ed." and it also shows how to do a search for a file across your file system, iirc. > > Second, I am trying to work through a couple of the examples and make > some small tweaks as I go to see how new things can work. In the first > case, I have copied the code in the book to see how the menu works and > are created as in the example menu.py below. I see how menus are created > and how the command option is used to call the function callback. > > # menu.py > from Tkinter import * > > def callback(): > print "called the callback!" > > root = Tk() > > # create a menu > menu = Menu(root) > root.config(menu=menu) > > filemenu = Menu(menu) > menu.add_cascade(label="File", menu=filemenu) > filemenu.add_command(label="New", command=harold) > filemenu.add_command(label="Open...", command=callback) > filemenu.add_separator() > filemenu.add_command(label="Exit", command=callback) > > helpmenu = Menu(menu) > menu.add_cascade(label="Help", menu=helpmenu) > helpmenu.add_command(label="About...", command=callback) > > mainloop() > > However, I now want to incorporate a basic python program with a > command. Say I have a simple program called test.py > > # test.py > filename = raw_input("Please enter the file you want to open: ") > new_file = raw_input("Save the output file as: ") > > f = open(new_file, 'w') > new = open(filename, 'r') > > for line in new: > x = line.split('\t') > print >> f, x[0],':', x[1] > f.close() > > To make this example complete assume I have a text file like this > > # data.txt > 1 one > 2 two > 3 three > 4 four > > So, the user currently just follows directions on the screen, enters the > file names, and I get what I want. I'd like to try experimenting with > gui programming to see if the python programs I have written can be made > even more user friendly. I currently use py2exe to create executables so > that others in my organization can use these programs. > > In that spirit, say I want to have a menu option that allows the user to > search their computer for this file, execute the python code and then > save the result as a user-defined filename. So, I guess my questions are > how do I associate the portion of code in menu.py > "filemenu.add_command(label="Open...", command=callback)" with an > operation that gives the user the ability to search the drives on their > machine and then once they do let python execute the code in test.py? > > Many thanks, It sounds like you want to run code from within your own program. This would require embedding a Python interpreter, which is quite possible, although I do not know how to do it. I would suggest that you just use a Tkinter-created frame/window that allows the user to enter the information into text controls rather than a command line type interface. You could even use a "Browse" button and let the user search for the file using a file dialog. Check out the sample code for such a beast in the recipe linked below: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/438123 If you do want to go the embedding route, you'll want to read the following information linked below: http://docs.python.org/api/embedding.html http://www.python.org/doc/ext/embedding.html http://www.ragestorm.net/tutorial?id=21 http://www.codeproject.com/KB/cpp/embedpython_1.aspx Hope that gets you going. Mike -- http://mail.python.org/mailman/listinfo/python-list