Господа, позвольте еще вопросом вас озадачить)
У меня имеется меню, появилась необходимость сделать подменю из трех пунктов. На каждый из пунктов подменю назначена одна и та же функция, но данные, передаваемые ей, разные.
Сразу же после запуска программы функции этих трех пунктов подменю начинают выполняться.
Вот код функции:
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
- 5
- 1
- 2
- 3
- 4
- 5

