Найти - Пользователи
Полная версия: Начинает тормозить TKinter
Начало » GUI » Начинает тормозить TKinter
1 2 3 4 5 6 7
vic57
 #
#!/usr/bin/env python
#coding:utf-8
from PyQt4.Qt import *
app = QApplication([])
view = QWebView()
view.load(QUrl('http://localhost:8000'))
view.move(0,0)
view.resize(820,620)
view.show()
app.exec_()


Antarius
Угу, ясно… Спасибо.
Antarius
Снова вопросы…
Переписал программу на PIL, воспользовался примером, создал index.html с js скриптом, который показывает картинку, нарисованную на питоне с помощью PIL, перезагружая файл каждые 60 сек. Результат полностью удовлетворил, кроме скорости обновления изображения браузером. Ну и ладно.

Вопрос - а если в момент сохранения картинки из питона, веб браузер попытается открыть картинку, что получится?

Аналогично, если питоновская программа опрашивает датчики и записывает результаты в файл (файл открыт на добавление, чтобы велся бесконечный лог), а другая питоновская программа хочет открыть этот файл и нарисовать график в PIL, или js скрипт, рисует график по данным из этого файла, и происходит это одновременно - что будет?
Если файл будет кому-то недоступен, то как этого избежать?
Спасибо
doza_and
При открытии на чтение ошибки не будет. В общем случае упадет принимаюшая сторона по причине битых данных (недописанной картинки например).В вашем случае это маловероятно. Избегают этого применяя обмен через сокеты, или залочивая файл на время его записи (создать другой файл -индикатор не валидности первого и поллить систему на его отсутствие).

Поздравляю вы подошли к прелестям асинхронного программирования :)
vic57
Antarius
создал index.html с js скриптом, который показывает картинку, нарисованную на питоне с помощью PIL
JS не нужен если передаешь картинку целиком, смысл в том чтобы передать данные - список (Y) и нарисовать браузером, покажи-ка код
Antarius
рисует график по данным из этого файла, и происходит это одновременно - что будет?
отследить изменение файла можно через tail -f
допустим какой-то процесс дописывает строку в data.txt
 #
#!/usr/bin/env python
import subprocess
pipe = subprocess.Popen(['tail','-1','-f','data.txt'],stdout=subprocess.PIPE)
while True:
    line = pipe.stdout.readline()
    pipe.stdout.flush()
    if not line: break
   # тут чего-то делаешь с данными
    print 'pipe:' + line,
print 'break'

Antarius
vic57
JS не нужен
Да, я оговорился, просто вставляется картинка в index.html. Без js. Но с автообновлением.
Можете объяснить что тут делается:
line = pipe.stdout.readline()
pipe.stdout.flush()

А можно отслеживать изменения нескольких файлов в одной программе? Хочу опрашивать несколько датчиков и складывать лог в разные файлы. Затем отдельной программой отслеживать измнения и рисовать картинки с графиками. Или отдельная программа для отдельного файла?

Спасибо.
Antarius
vic57
отследить изменение файла можно через tail -f
Скопипастил, не работает… разобраться не могу.
Сразу ‘break’.
vic57
а файл data.txt есть?
в терминале запусти
cd www
tail -1 -f data.txt
и в другом теминале
cd www
echo 1 2 3 >> data.txt

vic57
Antarius
Хочу опрашивать несколько датчиков и складывать лог в разные файлы
я бы опрашивал все датчики в одном цикле и общий лог делал.
ЗЫ там же можно и картинку рисовать
если ты делаешь метеостанцию - решений полно в инете
http://www.avislab.com/blog/raspberry-pi-meteo_ru/
первое из найденных
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB