Собственно сначала я хотел узнать как проиграть звук по окончанию работы виджета "Таймер"? Но было бы неплохо рассмотреть такие варианты событий по окончанию работы таймера:
- проиграть звук;
- выдать сообщение, например, в центре текущего рабочего стола поверх всех окон;
- ... или всплывающим сообщением;
- запустить программу;
- заблокировать экран;
- перейти в ждущий режим;
- выключить компьютер.
В общем, предлагаю обсудить и выдать рецепт - какие есть эффективные, "правильные" способы настройки событий таймера? Жду советов и предложений.
Имеем такие рецепты:
a) для проигрывания wav
b) для проигрывания mp3
import sys
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication(sys.argv)
myapp = QtGui.QMessageBox()
myapp.setText('Achtung! Timer!');
myapp.show()
sys.exit(app.exec_())
пока рецепта нет
В настройках виджета в поле "выполнить команду" просто вписать команду на выполнение программы, например запуск ktorrent:
ktorrent.
пока рецепта нет
пока рецепта нет
пока рецепта нет
За рецепты особое спасибо Ockonal
Строго говоря, можно сделать все, что душа желает =). Там есть поле: выполнить команду. Туда можно передать любой скрипт, программу, которые, в свою очередь, могут сделать все, что пожелаете =).
Поскольку я лишь банальный пользователь, то в скриптах пока не силен. Если не затруднит, поподробней пожалуйста, а еще лучше, примерчики.
Нууу.. например, сообщение - самое простое:
Создаем файл alert.py, помещаем его в кореневую папку вашего юзера: /home/%user%
Пишем:
А в поле выполнить команду:
python /home/%user%/alert.py
Что-то не пошло..
mirgor@mirgor-laptop:~$ python /home/mirgor/alert.py
Traceback (most recent call last):
File "/home/mirgor/alert.py", line 5, in <module>
myapp.addText('Achtung! Timer!');
AttributeError: addText
Дико извиняюсь =). Там не addText, а setText
Ockonal :: а для других вариантов примеры можно?
Замените на путь к waw-файлу.
Это для проигрывания звука.
Для выключения компа:
sudo sync && halt
Перезагрузка:
sudo reboot
Это в поле "выполнить команду"
Спасибо, переношу рецепты в топик. Но команды по управлению компом работать не могут, и не работают.
Почему не работают?
Если "sudo sync && halt" в терминале, то требуется ввод пароля. А от виджета не срабатывает, даже пароля не требует. А если бы и требовал - то смысла это ставить на таймер не было бы. Все равно выходит выключение вручную.
Да и со звуком тоже не работает, может что не так в пути указал?:
Честно говоря, у меня работает =)
Да, а ребутнуть/вырубить комп у тебя без прав рута никак не получится. Поэтому запрос пароля в любом случае был бы.
можно убрать запрос пароля на sudo, я так и сделал ибо
не ведаю что творюуверен в своих действиях ) и еще можно отправлять какие-то сигналы kdm, чтобы тот выполнял подобные системные действия, потому как работает ведь выключение и ребут из меню.можно отправлять какие-то сигналы kdm, чтобы
тот выполнял подобные системные действия, потому как
работает ведь выключение и ребут из меню
- надо копать в этом направлении - адназначна! Может кто найдет? Буду искать...
Для проигрывания звука я поступил так:
a) для проигрывания wav ставим sox
sudo apt-get install sox
пишем в поле "выполнить команду" виджета
play /home/mirgor/apert.wav
b) для проигрывания mp3 ставим mpg123
sudo apt-get install mpg321
пишем в поле "выполнить команду" виджета
mpg123 /home/mirgor/2.mp3
Можно, например, установить suid-бит для reboot-а и юзать его без пароля.
Чуть-чуть справки: Помимо стандартных 'rwx' значений команда CHMOD осуществляет ещё управление битами SGID, SUID и T. Установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы соответственно.
Отправить комментарий