Вывод ответа #1864547172

-

Python

Обсуждаем данный язык программирования

MaddyMax


Репутация:
репутация:
| на сайте с 1970 года
сообщений:

Пост № 1864547172

Господа, позвольте еще вопросом вас озадачить)
У меня имеется меню, появилась необходимость сделать подменю из трех пунктов. На каждый из пунктов подменю назначена одна и та же функция, но данные, передаваемые ей, разные.
Сразу же после запуска программы функции этих трех пунктов подменю начинают выполняться.
Вот код функции:


def SaveDoc(n):
filename = appuifw.query(ru("Введите имя файла"), "text")
if filename:
fullpath = "C:\\" + filename.encode("UTF-8") + n.encode("UTF-8")
if os.path.exists(fullpath):
rewritefile = appuifw.query(ru("Файл уже существует! Заменить?"), "query")
if rewritefile:
filewrite = open(fullpath, 'w')
content = t.get().replace(u"\u2029", u"\r\n")
encontent = content.encode("UTF-8")
filewrite.write(encontent)
filewrite.close()
appuifw.note(ru("Файл " + fullpath + " сохранен!"), "conf")
else:
appuifw.note(ru("Файл НЕ сохранен!"), "error")
else:
filewrite = open(fullpath, 'w')
content = t.get().replace(u"\u2029", u"\r\n")
encontent = content.encode("UTF-8")
filewrite.write(encontent)
filewrite.close()
appuifw.note(ru("Файл " + fullpath + " сохранен!"), "conf")
else:
appuifw.note(ru("Файл НЕ сохранен!"), "error")


А вот код меню с подменюшкой:

appuifw.app.menu = [(ru("Новый/Очистить"), ClearDoc), (ru("Сохранить в UTF-8"), ((u".txt", SaveDoc(u".txt")), (u".py", SaveDoc(u".py")), (u".html", SaveDoc(u".html")))), (ru("Инфо"), AboutSoft)]


Таким образом, после запуска программы друг за другом вылазят три окна с запросом на ввод имени файла.
Подскажите пожалуйста, в каком месте я допустил ошибку?


ответ опубликован:
Рейтинг: 5
голосов: 2