категории | RSS

Прикручиваем настройки к программе на питоне

Статья будет полезна новичкам!

Решил написать эту статью отчасти потому, что нашел это: Делаем настройки к программе на python и мне стало жалко тех, кто будет это использовать...

Ниже представлен код небольшой программы, использующей модуль prodb и реализующей простейшее меню настройки программы на примере изменения надписи заголовка программы.


# Импортируем необходимые модули
import appuifw2,     prodb,     os,     e32

# Немного магии...
def ru(x):return x.decode("utf-8")

# Устанавливаем путь до файла с настройками
setspath='D:settings.txt'

# Проверяем наличие файла настроек. Если функция os.path.exists() возвращает False,      создаем файл с помощью модуля prodb и записываем в него переменную DISP,      значение которой по умолчанию: Hello world!.

if os.path.exists(setspath):
  pass
else:
  SET=prodb.set(setspath,     load=0,     save=0)
  SET.DISP='Hello world'
  SET.save()
# Это функция,      которая будет запрашивать из файла текущее значение переменой DISP и присваивать ее значению заголовка программы.

def remain():
# Вводим глобальную переменную SET
  global SET
# Присваиваем ей значения из файла
  SET=prodb.set(setspath)
# Устанавливаем нужное значения в качестве заголовка
  appuifw2.app.title = SET.DISP
# Собственно сама функция настройки. Построена она на методе Listbox2 (имхо так удобнее).

def settings():
# Вызываем функцию обновления надписи
  remain()
# Далее код составления листбокса я описывать не буду,      так как документации на эту тему вагон

  items=[appuifw2.Item(title=ru('Имя заголовка:'),     subtitle=SET.DISP)]
  menu=appuifw2.app.body=appuifw2.Listbox2(items=[],     select_callback=click,     double=1,     icons=0)
  menu.extend(items)
  try:
    menu.set_current(index)
  except:
    menu.set_current(0)
# Функция обрабатывающая выбор пункта из меню листбокса
# Переменной index присваивается глобальное значение для того чтобы в дальнейшем при обновлении списка пунктов листбокса курсор становился на последний выбранный пункт меню.

def click():
global index
index=appuifw2.app.body.current()
if index==0: edit_disp()
# Функция запрашивает текст заголовка и записывает введенное значение в файл

def edit_disp():
disp=appuifw2.query(ru('Введите текст заголовка:'),     'text',     SET.DISP)
# Проверка на вшивость...
if disp==None:
   return
else:
# Записываем переменную в файл
   SET.DISP=disp
# Обновляем окно настроек
settings()

settings()
e32.Ao_lock().wait()


Внимание! Все переменные из prodb пишутся в верхнем регистре!

Удачных вам настроек
Прикрепленный файл #2: 4022_settings_instr.zip (1, 49 Kb)

Источник новости:

Qteb
2010-05-22T14:52:26Z

Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 3

#3   Zaterehniy    

Спасибоsmile немного эх нехватало подобного чуточку раньше.


0 ответить

#3   SunBoy    

Пасиб!
А что нужно поправить, если некоторые питон-проги (когда нажимаю выход) выдают ошибку "Прилож. закр."
В личку, если можно.


0 ответить

#3   DedMoros    

Спасибо, всё понятно и наглядно!


0 ответить

Яндекс.Метрика