[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [pygame] Select a File...
On Wednesday 01 August 2007 08:39:18 altern wrote:
> Ian Mallett(e)k dio:
> > By command-line I mean something where you select the file from the
> > console window. I once wrote a little program that does that, but only
> > to lower level directories. If I were to use a command-line thing, it
i did not quite get that, am confused about how cmdline is related to the
fileselector / gui things, (did not read all the mails too carefully, sorry)
> > I think wxPython is what I need. I don't know how to use it, though.
> > I'm looking at wxFileSelector()
> i dont think using pygame together with wxpython is agood idea, if it is
just figured to mention for the sake of completeness, and 'cause have had
actually surprisingly good experiences with it, the (good) old tkinter! this
is a one/two-liner i have in many pygame apps that use data in a directory:
--- copy .. ---
import tkFileDialog
#print "asking directory"
#directory="../scale/renderout"
try:
directory = sys.argv[1]
except IndexError: #no cmdline arg given
directory = tkFileDialog.askdirectory()
--- ... pasted ---
The nice things are: tkinter is there by default in the std py install (needs
a separate package for macosx though 'cause Apple does not bundle it, but
more on that later), the command is really simple to use (no need to even
import tkinter, just that tkFileDialog module, nor to deal with any App
framework kind of stuff) .. just pop up a dialog and back you get the dir as
string. ok you do also get an empty tk window as a side effect but you can
ignore that..
On the unfortunate / poor side is the fact that as tk uses / is also an old
own widget lib, e.g. on win32 the tkFileDialog is not implemented using the
standard MFC whatever things, so it is not the file dialog you are used to
and want on windows, it does not have you list of favourite dirs from the
OS / desktop env etc.
The suprising cool thing was that on Mac OS X tk is implemented so that e.g.
that file dialogue uses native widgets, hence you get the nice aqua thing you
want.
I guess on x11 things can vary .. but basically the situation is similar to
win32, i mean that e.g. on Gnome or KDE you also don't get the 'native'
widgets of that desktop .. or does it depend on your tk? But the tk widget is
not awful, and quite usable on win32 too for this simple thing .. and is
pre-installed there already if there is Python.
So my view has been that things like Wx that use native things are better, but
for simple things the old standard / legacy tk stuff can be nice and are very
useful for us in our in-house things and even products .. especially on macs,
and I guess you can hack tkFileDialog use the dialog of your choice in other
envs too..
Dunno if this addresses the question, but figured is an experience worth
sharing anyway, as it is exactly with pygame apps i've used this technique a
lot and for long a time now. Of course doing a proper gui inside the pygame
app is nicer, thanks to previous posters for info on those .. but this is a
one liner you can do in a std py install so it is kinda cool even for
interactive shell sessions :)
>>> import tkFileDialog
>>> tkFileDialog.askdirectory()
u'/home/antont/.emacs.d'
> enrike
~Toni