2014-12-30 3 views
0

Обычный регулярный диалог файла python из Tk падает под Enthought Canopy.Необходим диалог с файлом для кода, запущенного в Enthought Canopy

Каков рекомендуемый способ получить диалоговое окно файла для пользователей Canopy?

ниже код отлично подходит для регулярного питона работы:

import Tkinter, tkFileDialog 

root = Tkinter.Tk() 
root.withdraw() 

file_path = tkFileDialog.askopenfilename() 

Ошибка сбщ при запуске под пологом:

2014-12-30 11:22:52.809 Python[51980:d0f] -[QNSApplication _setup:]: unrecognized selector sent to instance 0x108657b70 
+1

Следующая может быть уместным: https://support.enthought.com/entries/21793229-Using- Tkinter-Turtle-in-Canopy-s-IPython-panel –

+0

Это объясняет, почему у Tk могут быть проблемы. Тем не менее, должен быть простой способ получить диалоговое окно файла под Canopy. –

ответ

1

В зависимости от того, какой интерфейс вы используете в своей программе. Если ваша программа также использует TK в другом месте, следуйте инструкциям в ссылке, предоставленной Уорреном. Если все, что вам нужно, это диалог (и аналогичный), предложение Чака, вероятно, является самым простым (особенно, поскольку Qt является бэкэндом по умолчанию для ядра IPython, который использует Canopy). Я не гуру Qt, но я думаю, что вы можете упростить предложение Чака к:

from PySide import QtGui 
fname, _ = QtGui.QFileDialog.getOpenFileName(None, 'Choose file','.') 

См http://srinikom.github.io/pyside-docs/PySide/QtGui/QFileDialog.html

1

Для меня, простой альтернативой является использование Qt.

fname, _ = QtGui.QFileDialog.getOpenFileName(self.view, 'Open file','.') 
Смежные вопросы