One of the things I was most missing from my VFP environment is the "set
default to getdir()" statement. So I thought I could do something about
it. I'm sharing it here for those old VFP hands who may need it.
You use it thus :
>>> import fox
>>> fox.setDefault(fox.getDir())
-----------------------------------------------------
A nice window allows you to pick a directory
-----------------------------------------------------
>>> import os
>>> os.getcwd()
'C:\\whatever\\dir
>>> fox.getDir()
-----------------------------------------------------
A nice window allows you to pick a directory
-----------------------------------------------------
'C:/WINDOWS/Config'
>>> fox.getFile()
-----------------------------------------------------
A nice window allows you to pick a file
-----------------------------------------------------
'C:/WINDOWS/Cursors/BEAM_IL.CUR'
>>>
Hope this is useful. I've used Tkinter because this allows me to use the
utility in IDLE, pythonWin, and PyCrust. Have tried with wx but it works
different in IDLE than PyCrust due to the fact that in PyCrust there is
a wx event loop already working (so I would have had to try and detect
if there was such an event loop).
Raised this question in a list and got this answer :
"""
You could try something like:
wx.CallAfter(lambda: None)
Here's what I get in a quick test with no app running:
>>> import wx
>>> wx.CallAfter(lambda: None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"//Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/wx-2.8-mac-unicode/wx/_core.py",
line 14359, in CallAfter
assert app is not None, 'No wx.App created yet'
AssertionError: No wx.App created yet
Whereas if I do the same thing from pycrust, nothing happens (that is,
presumably my lambda executes).
"""
If somebody comes up with a way of coding this in dabo (without going into too
much hassle trying to detect wx) I'd be happy to know. Any contributions to fox
utilities is welcome, I'm planning on a browse(micursor) function to browse an
already created cursor.
Here's the code :
-----------------------------------------------------
Fox.py :
======
from __fox import getDir, setDefault, getFile
-----------------------------------------------------
-----------------------------------------------------
__fox.py :
========
import Tkinter, tkFileDialog
import os
def getDir() :
root = Tkinter.Tk()
root.withdraw()
path = tkFileDialog.askdirectory(parent=root, title='Choose directory ...')
root.destroy()
return path
def setDefault(path) :
if path :
os.chdir(path)
def getFile() :
root = Tkinter.Tk()
root.withdraw()
file = tkFileDialog.askopenfilename(parent=root, title='Choose File ...')
root.destroy()
return file
-----------------------------------------------------
HTH
Ricardo
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/[email protected]