Post by MikiHello Kevin,
Post by MikiTk.lift doesn't seem to work on OSX (Python 2.5.1).
If you click on the PythonLauncher application that runs in your do=
ck
Post by MikiPost by Mikiwhen this script is executed, the window comes into focus fine.
You're right, but I want to window to be initially in focus (without
the user clicking on the python launcher icon).
"Lift" (which calls the Tk command "raise") doesn't work this way, at =
=
least not under Aqua. If your application has focus, "lift" will raise=
=
the widget being called to the top of the stacking order. However, it =
=
will not make the application frontmost. To do this you'd have to use =
=
Carbon calls (look at Carbon.CarbonEvt) or use a Tk extension and call=
=
it from Python. Of course, this is pretty much a non-issue if your =
application is wrapped as a standard Mac application bundle via =
py2app--most Mac users don't run Python apps from the Terminal but =
instead double-click an application icon. In that event, "lift" should=
=
work fine, because the application will already have focus.
There is a trick that sometimes works even for interpreted application:
import Tkinter as tk
root =3D tk.Tk()
root.withdraw()
# Code building the window...
root.lift()
root.deiconify()
root.mainloop()
This sometimes forces the window to be top-most. If this doesn't work, y=
ou =
can also try:
import Tkinter as tk
root =3D tk.Tk()
root.withdraw()
# Code building the window...
root.lift()
root.after_idle(root.deiconify)
root.mainloop()
This was a trick that had to be done on Windows a few years back to forc=
e =
the main window to be created on top of this others. It deosn't seem to =
be =
needed anymore now, but maybe the trick can be used on a Mac... Don't kn=
ow =
if this will work the same, though...
HTH
-- =
python -c "print ''.join([chr(154 - ord(c)) for c in =
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"