lol2Fast4U 16.07.2009 01:39
Python — Продвинутый яйцетаймер
Конечно же, just for fun я написал приложение. Небольшое, но полезное.Ой, не только just4fun, а еще для изучения продвинутых возможностей PyGTK.
Так вот, многие знают, что такое яйцетаймер. Если нет - это такая программа или железка, которую ставишь на время, через это время она тебя оповещает звуком (а в случае с софтом - и на экране).
Вот для линукса есть KTea и его гткшный клон GTea. Но простые они слишком.
Захотелось такого, но покруче. И было нечего делать. Сел я за свой емакс и написал. push'нул на Launchpad, написал твит и вот пишу сюда.
ProEggTimer. Ставишь mpd на паузу. Выбираешь предустановку или своё время, нажимаешь старт, сворачиваешь окно. Когда пройдет время - mpd заиграет, а на экране появится оповещение Galago (notify-osd, naughty, avant-notification-daemon и др.), или если нету python-dbus(или такого демона) - появится окно.
Казалось бы всё, но это еще не релиз. Мой TODO: About-диалог и настройки(mpd, команда вместо mpd, отображать окно даже когда есть galago) :)
А от вас, читателей этой вот статьи, требуется помощь.
Питонистов: посмотреть код, оптимизировать, создать свою ветку и push'нуть - если есть чего оптимизировать %)
Людей, знающих языки кроме английского и русского: перевести и выложить. Как? Ну обычный gettext, все просто.
Креативщиков, которые все в идеях: рассказать их!
Всех: репортить баги, если есть. создать свою ветку и push'ать туда предустановки для всяких продуктов и дел, запрашивая объединение с trunk. Они в xml, в папке presets, вот например такие. И не забывать иногда делать bzr pull && sudo python setup.py install :)
1.Не умеет MPD, не умеет Galago, перегруженный сложный интерфейс как и все qt'шные поделия
2.Питон быстрый
3.Qt - говно
4.Я буду серьёзно относится кбезопасности^Wюзабилити своих приложений
2.Питон быстрый
3.Qt - говно
4.Я буду серьёзно относится к
1. kteatime юзает phonon. зачем ему mpd?
Вы не определились или холиварите?
2. Ключевое слово маленькое. Сколько памяти съедает proEggMeter при запуске? kteatime ~3Мб (я бы посмотрел сам, но нет желания собирать bzr только из-за этого).
перегруженный сложный интерфейс
простые они слишком
Вы не определились или холиварите?
2. Ключевое слово маленькое. Сколько памяти съедает proEggMeter при запуске? kteatime ~3Мб (я бы посмотрел сам, но нет желания собирать bzr только из-за этого).
>я бы посмотрел сам, но нет желания собирать bzr только из-за этого
1. Bzr нельзя собрать, можно скачать и запустить. Python же!
2. Не только из-за этого, в bzr репозиториях много всего интересного, тот же Gwibber.
>Вы не определились или холиварите
'простые слишком' = KTea, GTea
'перегруженный сложный интерфейс' = kteatime
>Сколько памяти съедает proEggMeter при запуске?
мало, в топе по памяти нету. процессор вообще 0.0% :)
1. Bzr нельзя собрать, можно скачать и запустить. Python же!
2. Не только из-за этого, в bzr репозиториях много всего интересного, тот же Gwibber.
>Вы не определились или холиварите
'простые слишком' = KTea, GTea
'перегруженный сложный интерфейс' = kteatime
>Сколько памяти съедает proEggMeter при запуске?
мало, в топе по памяти нету. процессор вообще 0.0% :)
о, тогда заценю
у kteatime не 'перегруженный сложный интерфейс', это enterprise-решение %)
у kteatime не 'перегруженный сложный интерфейс', это enterprise-решение %)
думаю что бы не позорить gtk перед кутешниками, стоить заменить строки 48,49,50,51 в файлике eggtimer/gtkui.py на нечто следующие:
плюс использование xml(я) мне кажется избыточным.
self.vbox.pack_start(self.slider, False, False, 3)
self.hbox.pack_start(self.start)
self.vbox.pack_start(self.hbox, False, False, 3)
self.vbox.pack_end(self.list)
плюс использование xml(я) мне кажется избыточным.
в чем преимущество pack_start и pack_end перед add?
я вижу только лишние аргументы (False, False, 3) и путаницу со start и end.
не надо усложнять код. keep it simple, stupid!
я вижу только лишние аргументы (False, False, 3) и путаницу со start и end.
не надо усложнять код. keep it simple, stupid!
дело ваше, я просто не знаю можно ли через add метод добится того чтобы виджеты не были такими уродскими как ваша кнопка «start».
add и размер друг от друга не зависят.
растягивается кнопка из-за размера окна. чтобы запретить - надо сам gtkButton копать, есть там вроде бы настройка
растягивается кнопка из-за размера окна. чтобы запретить - надо сам gtkButton копать, есть там вроде бы настройка
кстати про pygtk статья была бы тут действительно востребована
Как раз недавно захотел такую же штуку. Но мне в консоли удобнее.
Нужно уведомление? Пожалуйста:
Через минуту всплывет окошко.
Но окошки часто проскакивают незамеченными, так что нужно сделать пищалку. Просто старт MPD тут не подходит. Не выключать же музыку, пока таймер работает.
Если есть PC-Speaker, то можно установить beep, если нет или хочется звук из колонок — то можно сделать пищалку самому.
Нужно уведомление? Пожалуйста:
echo 'notify-send Hello!' | at now + 1 minute
Через минуту всплывет окошко.
Но окошки часто проскакивают незамеченными, так что нужно сделать пищалку. Просто старт MPD тут не подходит. Не выключать же музыку, пока таймер работает.
Если есть PC-Speaker, то можно установить beep, если нет или хочется звук из колонок — то можно сделать пищалку самому.
старт mpd самое то.
но я конечно добавлю опцию запуска команды, по дефолту будет aplay, только звук надо взять...
но я конечно добавлю опцию запуска команды, по дефолту будет aplay, только звук надо взять...
Дело вкуса. Просто мое ухо уже на музыку как на будильник не реагирует, так что приходится использовать что-то пожестче. :)
Ну Tkinter тоже делает native look(если я правильно понял..в общем оформление будет такое же как и у остальных окон). А так я пока ток разбираюсь)) там вот написано, что Tkinter на разных платформах будет работать, а вот pygtk я сомневаюсь. А фишек GTK я даже и не знаю. Что это за фишки кстати?
2) это должно быть нечто маленькое и быстрое, а тут интерпритатор пистона будет зря болтаться
3) пишется за 30 минут в Qt с учетом отладки и всего-всего
4) гигантская кнопка 'Старт' напоминает мне о поделиях однокурсников в дельфи