Kevin,
On 8/12/14, 7:19 PM, Kevin Walzer wrote:
Hi,
On 8/12/14, 10:23 AM, JBB wrote:
After some more digging, I find that Python uses the macosx backend on
initialization. If I change this to tk before beginning work, the
problem goes away. My Linux Python uses tk by default.
What do you mean by this? On Mac, Tkinter/Tk uses native dialogs and
widgets by default. What change did you make to get it to work on the Mac?
Thank you for the suggestions. My notes:
I normally use the iPython Notebook for my Python coding. As a newcomer
to the language, the self-documenting features are helpful.
The following code works in the notebook: A file dialog (native Mac)
comes up, I can navigate, select a file, the dialog box closes, and the
correct path and filename print.
%matplotlib tk
from Tkinter import *
import tkFileDialog
root = Tk()
root.withdraw()
filename = tkFileDialog.askopenfilename(parent=root)
print filename
If I don't have the initial magic command, the file dialog box hangs
after file selection. The rainbow ball just spins until I restart the
kernel at which point it closes.
I normally invoke the notebook with
ipython notebook
%matplotlib at the first cell gives
Using matplotlib backend: MacOSX
I can't change the backend at this point so I have to restart the kernel
and make sure to run %matplotlib tk before any imports.
This is a convenient albeit slightly kludgy way of setting the backend.
If I invoke the notebook with:
ipython notebook --matplotlib=tk
then the code above _without_ the %magic command works fine.
I did see the dialog hanging on the Mac. My guess is that you weren't
giving the event loop enough time to spin; the dialog was popping up too
fast. This code works just fine:
from Tkinter import *
import tkFileDialog
root = Tk()
def openfile():
tkFileDialog.askopenfilename(parent=root)
b = Button(root, text="Open", command=openfile).pack()
root.mainloop()
I tried this in a fresh notebook.
A small window opens, when I mouseover, an Open button appears. I click
it, I get a native Mac file dialog box. I navigate, select a file, the
dialog box disappears and the small window/button remain. The kernel on
the notebook shows busy until I close the small window.
I'm not up on the Button and .pack tools as yet. I don't know where the
filename is stored.
JBB
_______________________________________________
Tkinter-discuss mailing list
Tkinter-discuss@python.org
https://mail.python.org/mailman/listinfo/tkinter-discuss