IPB

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V   1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Учимся ездить на Питоне, опыт освоения языка Python с нуля
Поделиться
ИВК
сообщение 25.8.2010, 19:28
Сообщение #1


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Несколько дней назад начал пробовать связку Python + Tkinter. С чего началось - сказано здесь . Какие первые выводы?
Прежде всего, убедился, что это удачный выбор. Да, мне нужен именно объектно-ориентированный язык (подходит к моей голове намного лучше, чем какой-то иной - сужу по bash) , именно интерпретируемый (в компилируемом замучился бы с правкой исходников) и именно в паре с графической библиотекой (надо же иногда видеть питоновские объекты воочию smile.gif ).
Так что в принципе вопрос решён : буду осваивать Python, причём в связке с Tkinter'ом.
Какие проблемы? Если кратко, то всё время возникают мелкие вопросы, ответы на которые обычно проще найти самому, чем спрашивать у других. Кавычки, отступы, методы, аргументы... и иной раз сложно сразу найти справку о том, что именно делать. Пакет документации к Питону установил, но и он не всегда помогает. Питон хорошо документирован, но не всегда могу сообразить, где именно искать нужную информацию.
Вот такой разве что вопрос могу задать (потому что он как раз не мелкий) : как лучше чайнику писать программы : в виде одного скрипта или в виде нескольких скриптов, выполняющих каждый свою часть работы? Спрашиваю потому что, по-моему, проще передавать данные из одного простенького скрипта в другой подобный же, чем соединять их в один сложный - у меня тут с переменными какие-то непонятки : по отдельности скриптики работают, а соединишь - начинается нечто непонятное. Или лучше сначала с переменными как следует разобраться?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 25.8.2010, 20:02
Сообщение #2


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Python вообще хороший выбор, можно вместо Tkinter-а использовать другие модули для работы с графикой PyGTK PyQt и другие.
После старого доброго паскаля система отступов у меня по первости воспринималась достаточно дико но сейчас привык и дискомфорта уже не испытываю ( правда Geany иногда глючит при переносе кусков кода из проги в прогу и отступы приходится в kwrite править ). Опять же типы переменных не надо жестко задавать как в паскале. На сегодняшний день единственное что мне не нравится в нем это 'ленивые' логические операторы, но это в общем обходимо условиями хоть и на мой взгляд не удобно.
На мой взгляд простые программы проще писать одним скриптом, для сложных можно выделить подпрограммы в отдельный модуль ( если планируется использовать
их еще в других проектах ). С переменными разбираться нужно, я например страдаю излишней глобализацией, хотя по уму лучше обходиться по возможности return -ом при работе с функциями.

Сообщение отредактировал kostyalamer - 25.8.2010, 20:03
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 25.8.2010, 22:12
Сообщение #3


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Насколько я понимаю, в Tkinter'е есть всё для начала (и с большим избытком), так что не буду усложнять : пусть пока будет один Tkinter.
Отступы меня тоже сначала озадачили - непривычно как-то, что они так много значат. Но привык уже.
А вот насчёт поиска ответов на всяческие мелкие вопросы. Никак не получается через sys.argv передать из одного скрипта в другой значение переменной. Всё получаю сообщение
Код
TypeError: 'list' object is not callable

и не могу выяснить, что делать.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 25.8.2010, 22:50
Сообщение #4


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Иван посмотри тут : http://www.python.su/forum/viewtopic.php?id=7791
а вот очень интересный хелп по модулям : http://wiki.linuxformat.ru/index.php/LXF77:Python
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 11.9.2010, 18:55
Сообщение #5


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Поставил пакет tk-demos - коллекция скриптов для демонстрации возможностей Tk, с возможностью правки на ходу. Очень наглядная штука, удобно поупражняться для начала, а главное - подсказывает идеи. Правда, скрипты на Tcl smile.gif А есть подобный пакет (желательно тоже для Tk) со скриптами на Питоне? В альтовских репозиториях вроде нет.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 11.9.2010, 19:14
Сообщение #6


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 11.9.2010, 18:55) *
Поставил пакет tk-demos - коллекция скриптов для демонстрации возможностей Tk, с возможностью правки на ходу. Очень наглядная штука, удобно поупражняться для начала, а главное - подсказывает идеи. Правда, скрипты на Tcl smile.gif А есть подобный пакет (желательно тоже для Tk) со скриптами на Питоне? В альтовских репозиториях вроде нет.

Такого не видел, а вот , кстати полезная ссылочка http://www.tkdocs.com/tutorial/onepage.html она универсальна для
Tkinter-а и Tcl. вроде бы я ее еще здесь не упоминал.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 12.9.2010, 23:31
Сообщение #7


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Константин, вот я потренировался на чём попало и вернулся к wmfon'у - надо же попробовать прикрутить всё-таки предпросмотр. Итак, кнопка выбора должна сначала вызвать функцию предпросмотра; когда понравившийся файл выбран, то запускается твоя функция смены обоев (имя выбранного файла передаётся ей через переменную). И вот во что дело упёрлось : ведь tkFileDialog.askopenfilename (и, по-моему, все функции в tkFileDialog) - "одноразовый", а потому для последовательного просмотра картинок не годится. А есть в Питоне что-то такое, чтобы можно было, к примеру, одинарными щелчками мыши просматривать файлы в каталоге, а двойным щелчком - завершать функцию просмотра и вызывать функцию выбора обоев? Иначе говоря, есть ли файловый диалог, понимающий несколько разных способов выбора файла и реагирующий на них по-разному? Может, тут не Tkinter лучше использовать?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 12.9.2010, 23:57
Сообщение #8


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


В Tkinter-е такого диалога с предпросмотром содержимого вроде нет, делать предпросмотр посредством canvas тоже не очень хорошо программа сразу потянет за собой pyton-module-imaging а это довольно много всякой гадости ( которая в том же Antique будет лишней ) + зависимость от Qt. Есть другая идея посмотреть в сторону внешнего просмотровщика возвращающего имя файла, в таком варианте от файлового диалога можно вообще избавиться.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 13.9.2010, 0:04
Сообщение #9


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


А какой в Antique просмотровщик? Или тут можно не пристёгиваться к определённой программе?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 13.9.2010, 0:14
Сообщение #10


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 13.9.2010, 0:04) *
А какой в Antique просмотровщик? Или тут можно не пристёгиваться к определённой программе?

В Antique mirage, но думаю что можно не пристегиваться,лишь бы этот просмотровщик qt за собой не тянул по возможности .
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 13.9.2010, 18:05
Сообщение #11


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Всё вроде просто : пишу функцию, которая запускает (к примеру) mirage, ловит адрес последнего открытого в нём файла и передаёт его в функцию выбора обоев. Но не могу найти, как заставить просмотровщик возвращать упомянутый адрес и как этот адрес ловить, и как вообще питоновские скрипты обмениваются данными с внешними программами. Методы в модуле subprocess ведь вроде не для этого?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 13.9.2010, 20:31
Сообщение #12


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Иван , все на самом деле не очень просто , было бы просто я бы давно это сам написал wink.gif . Прогу даже с параметром можно вызвать используя модуль os
вот пример из того что сейчас пишу :
import os
#.............
os.system('mplayer cdda:// -cache 2500') # играем аудиодиск

модулем subprocess( вообще очень интересная штука) тоже можно решить эту проблему ( правда я его еще не ковырял ), в общем тебе и карты в руки, и в mirage не упирайся может тот же eog или что другое будет проще приделать к wmfon-у smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 13.9.2010, 20:59
Сообщение #13


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


mirage с помощью os.system я уже вызывал, и тоже с параметрами, и не сомневаюсь, что и другой просмотровщик можно так же использовать; тут нет проблемы. Мне другое не совсем понятно : получается, нет простого способа отслеживания из питоновского скрипта того, какие файлы открывает им же вызванная внешняя программа? То есть дело-то не в деталях, а вообще в том, как питоновские скрипты общаются с другими программами. Вот эта группа модулей - os, sys, subprocess и т.п. - для этого (кроме прочего) предназначена, их и надо ковырять? Я, честно говоря, думал, что отслеживание действий программы, которая вызвана из скрипта - вполне обычное дело (программу ведь вызываешь ради некого результата, так как же за ним не проследить?), и должна быть какая-то готовая функция для этого. Но если её нет, придётся в самом деле поразмыслить smile.gif


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 13.9.2010, 21:18
Сообщение #14


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Размышлять придется ! При запуске программы через os.system управление полностью передается программе ( хотя думаю можно и фоновым режимом поиграться и вывод в файл переназначить, а этот файл уже сканировать питоновской прогой ) модуль subprocess позволяет запустить внешнюю прогу параллельно основной, но с ним я пока еще не работал и что можно из этого получить не знаю. Так что простор для творчества огромный smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 13.9.2010, 21:39
Сообщение #15


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Теперь уже яснее. Во всяком случае, понятно, где зарыта собака и как примерно её выкапывать; как понятно и то, что зарыта довольно глубоко smile.gif Отделаюсь от срочных дел - займусь. В любом случае, придётся немного в теорию углубиться, а то насчёт взаимодействия процессов у меня весьма поверхностные знания wink.gif

P.S. Тему переименовал : очевидно, что Tkinter - нечто вторичное.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 15.9.2010, 20:17
Сообщение #16


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Кстати, когда требуется как можно более полная информация по какому-то модулю, классу и т.п., то где лучше искать? Вот здесь : http://www.python.org/doc ?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 15.9.2010, 21:45
Сообщение #17


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 15.9.2010, 20:17) *
Кстати, когда требуется как можно более полная информация по какому-то модулю, классу и т.п., то где лучше искать? Вот здесь : http://www.python.org/doc ?

Очень неплохо посмотреть еще здесь:
http://python.su/
эта статейка хороша в качестве быстрой подсказки по питону: http://habrahabr.ru/blogs/python/31180/
а эта книжка гораздо глубже:http://www.intuit.ru/department/pl/python/1/
По установленным модулям помогает такой способ
в консоли даем команду python , получаем консоль питона
Дальше набираем , например для Tkintera:
import Tkinter
help (Tkinter)
Наслаждаемся подробным описанием ( на английском ) smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 18.9.2010, 18:00
Сообщение #18


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Нашел описания большого количество модулей питона на русском : http://www.script-coding.info/Python/Otkidach3.html
Очень полезный хелп smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 18.9.2010, 19:13
Сообщение #19


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Спасибо, пригодится. Но у меня проблемы не столько с английским, сколько с азами программирования (правда, ещё больше - со временем; эту хроническую проблему лучше бы не упоминать, но я, честно говоря, из-за неё никак не могу сосредоточиться на Питоне). Вот насчёт этого модуля subprocess. Экземпляр класса Popen - это объект-посредник между функцией, в которой он создаётся, и дочерним процессом? И ещё : запуск программы через shell и напрямую - а в чём принципиальная разница?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 18.9.2010, 19:58
Сообщение #20


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 18.9.2010, 19:13) *
Спасибо, пригодится. Но у меня проблемы не столько с английским, сколько с азами программирования (правда, ещё больше - со временем; эту хроническую проблему лучше бы не упоминать, но я, честно говоря, из-за неё никак не могу сосредоточиться на Питоне). Вот насчёт этого модуля subprocess. Экземпляр класса Popen - это объект-посредник между функцией, в которой он создаётся, и дочерним процессом? И ещё : запуск программы через shell и напрямую - а в чём принципиальная разница?

Со временем, проблема знакомая smile.gif . Иван зачем тебе модуль subprocess, думаю что модуля os вполне хватит.
n=os.popen('команда') запускает внешнюю команду ( mirage ничего в консоль к сожалению не выводит, надо подбирать чего-то другое ) и весь консольный вывод загоняет в переменную переменную в данном случае n, из этой строки и надо выдирать имя файла, как вариант. вообще с этими popen тема довольно интересная надо разбираться , я сейчас работаю примерно в том же направлении терзая из питона несчастный mplayer smile.gif
кстати если тебе надо что-бы внешняя команда не перехватывала управление у твоего скрипта а работала параллельно то как меня недавно осенило, надо просто ее
запустить в фоне, вот в моем случае :
os.system('mplayer -slave -quiet -input file=/tmp/mpinfile cdda:// &')
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 18.9.2010, 20:22
Сообщение #21


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Цитата(kostyalamer @ 18.9.2010, 19:58) *
Иван зачем тебе модуль subprocess, думаю что модуля os вполне хватит.

Да без разницы, там сейчас явное дублирование одних модулей другим, так что мне всё равно, откуда брать Popen.

Цитата(kostyalamer @ 18.9.2010, 19:58) *
mirage ничего в консоль к сожалению не выводит, надо подбирать чего-то другое

А какой приемлемый для Antique просмотровщик выводит имена файлов в консоль? Я вообще даже не представляю, как это определить.

Цитата(kostyalamer @ 18.9.2010, 19:58) *
кстати если тебе надо что-бы внешняя команда не перехватывала управление у твоего скрипта а работала параллельно то как меня недавно осенило, надо просто ее
запустить в фоне, вот в моем случае :
os.system('mplayer -slave -quiet -input file=/tmp/mpinfile cdda:// &')

Хорошо. Но ведь если функция просмотра запустила просмотровщик и остановилась в ожидании, когда он отключится и выдаст имя последнего открытого файла, то получается разве не то же самое? Ну перехватил он управление - и что, ведь процесс скрипта (или Питона вообще) никуда от этого не исчезнет, просто ждёт?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 18.9.2010, 21:03
Сообщение #22


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


1) я тоже не знаю какой просмотровщик выводит имена в консоль, проверяется просто - запускаешь их из консоли и смотришь вывод, возможно идея вообще была ложной . Если все-таки найдешь такой посмотрим на его зависимости, тогда будет ясно подходит он для antique или нет.
2) Да в случае с wmfon-ом действительно фоновый режим скорее всего не нужен, я его привел тут как простую альтернативу модулю subprocess.
PS кстати какой средой разработки пользуешься? я перепробовал много: Geany, Idle, Eric, drpython везде свои глюки и баги ( с моей субъективной точки зрения )
так все достало что сидел одно время на связке konqueror+kwrite. Но недавно нашел то что нужно - medit, работает как Geany только без глюков с неправильным отображением пробелов. Рекомендую, только в меню Вид поставь галку отображать номера строк.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 18.9.2010, 21:13
Сообщение #23


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Цитата(kostyalamer @ 18.9.2010, 21:03) *
проверяется просто - запускаешь их из консоли и смотришь вывод, возможно идея вообще была ложной . Если все-таки найдешь такой посмотрим на его зависимости, тогда будет ясно подходит он для antique или нет.

Попробовать можно. Но почему вывод непременно в консоль? Ведь вроде бы "трубопроводу" между процессами консоль не нужна (хотя мои знания на этот счёт явно следует освежить).

Цитата(kostyalamer @ 18.9.2010, 21:03) *
кстати какой средой разработки пользуешься?

Как ни странно, никакой. Попробовал IDLE, что-то (не помню что) не понравилось, так что юзаю просто kate, а иногда и вовсе kwrite.

Цитата(kostyalamer @ 18.9.2010, 21:03) *
Но недавно нашел то что нужно - medit

Поставлю.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 18.9.2010, 21:22
Сообщение #24


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Консоль это как простейший вариант, если сумеешь выдрать имя файла другим способом, прекрасно, но честно говоря пока не представляю как вряд ли просмотровщики могут вернуть его в виде параметра ( хотя возможно какие-то и могут )
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 18.9.2010, 21:43
Сообщение #25


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Запустил для пробы Мираж, поглядел в /proc его процесс, там много чего есть; вполне возможно, и имена файлов. Возможно. в эту сторону и нужно рыть. Правда, тогда просмотровщик в самом деле должен работать параллельно, а функция просмотра должна отлавливать из /proc его файлы и записывать в переменную; она, конечно, будет при этом менять значение, но в итоге в ней останется имя как раз последнего открытого файла, потому что его уже ничто не перезапишет. Вот так примерно. Это, конечно, просто фантазии, ничем не проверенные!


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 19.9.2010, 21:31
Сообщение #26


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Теоретически этот вариант выглядит довольно просто : запускаем из скрипта просмотровщик, узнаём номер его процесса, потом в каталоге /proc/<номер процесса>/fd вылавливаем ) дескрипторы (а через них - и имена) открываемых просмотровщиком файлов-картинок. А вот как это выразить не на русском языке, а на Питоне - вопрос. Наверное, я рассуждаю, как чайник, не знающий реалий программирования, и лучше действовать как-то по-другому; но я просто исхожу из того, что инфу о любом процессе по идее лучше брать прямо из /proc, а не добывать окольными путями.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 19.9.2010, 22:10
Сообщение #27


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Вполне осушествимый вариант, попробуй для начала это сделать без питона в консоли, поюзай /proc в мс, если выдерешь оттуда имя файла, считай пол задачи решил, остальное уже дело техники smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 19.9.2010, 23:34
Сообщение #28


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Во всех попадавшихся мне мануалах говорится, что в каталоге /proc/<pid>/fd открывается по одной ссылке на каждый открытый процессом файл. В действительности, как показали первые же эксперименты, всё далеко не так прямолинейно, так что сразу и не поймёшь, что к чему. Но деваться некуда, придётся углубляться в тему smile.gif


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 28.9.2010, 19:15
Сообщение #29


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Цитата(IVK @ 19.9.2010, 23:34) *
придётся углубляться в тему

Я основательно в неё углубился (работа ядра и процессов, их взаимодействие, открытие файлов, каналы, сокеты и т.п.), так что и про Питона забыл smile.gif Потом вернулся к тому, о чём тут выше говорилось, и получилось следующее.
Кроме "нормального" способа открытия файлов процессами (о котором везде пишется), есть ещё и некий другой (о котором мне что-то не попадалось упоминаний). Нормальный - это когда ядро открывает запрошенный процессом файл, а процессу даёт на него ссылку, которую легко можно подсмотреть в каталоге /proc/<pid>/fd; что нам и нужно. Например, так открывают файлы OpenOffice.org Writer, Kaffeine, Kpdf и многие другие. Но Mirage (как и вообще все проверенные мною просмотровщики) использует другой способ, внешне выражающийся в том, что при открытии первого файла в /proc/<pid>/fd появляются inotify и два сокета. Насколько я понимаю, Мираж через эти сокеты просто закачивает файлы (картинки, то есть) в своё пространство, а ядро тут вроде как остаётся не у дел, а потому в /proc имени этого файла обнаружить не удаётся. Я даже утилитой lsof выпытывал : какой прогой открыт вот этот файл(картинка)? lsof отвечает : никакой! но вот же эта картинка передо мной, в Мираже открыта!
Короче, вряд ли из /proc тут можно выцепить имя файла, разве что из самой программы.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 28.9.2010, 20:11
Сообщение #30


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Иван, в таком варианте надо наверное тебе написать просмотровщик для wmfon-а самому, моя идея к сожалению себя не оправдала. Фиг с ним пускай тянет за собой модуль imaging, это наверное все-равно более перспективный вариант чем попытка выдрать имя файла из того-же mirage.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 28.9.2010, 20:15
Сообщение #31


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Цитата(kostyalamer @ 28.9.2010, 20:11) *
надо наверное тебе написать просмотровщик для wmfon-а самому

в смысле на canvas'е?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 28.9.2010, 20:24
Сообщение #32


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 28.9.2010, 20:15) *
в смысле на canvas'е?

Да это будет не очень сложная задача , после твоих изысков в сторону процессов и субпроцессов (сам сейчас этой гадостью занимаюсь[субпроцессами] пишу морду для mplayer-а играющую аудиосидюки ). Потихоньку едет крыша crazy.gif , вот книжонку нашел хорошую: http://reslib.com/book/9194/288 правда там не дают много читать rtfm.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 29.9.2010, 17:18
Сообщение #33


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Дискуссию про MPlayer и т.п. переместил в тему об Antique.

Насчёт просмотра в wmfon.
С помощью Tk его, как я понял, не сделать вообще (см. сообщения 7 -8 этой темы). Тогда другие графические библиотеки использовать, где есть "неодноразовые" аналоги tkFileDialog.askopenfilename? А у них тоже свои зависимости? Короче, тут вопрос вписывания всего этого дела в Antique, а в этом я как-то не очень ориентируюсь.
Всё-таки размышляю, нельзя ли как-то выпытать у просмотровщика имя открываемого файла. Если этот файл в ядре никак не регистрируется, то в /proc лазить бесполезно, а у самой проги узнать... единственное, что приходит в голову - это сохранение из неё файла куда надо; но, по-моему, с какими бы опциями ни запускать просмотровщик, всё равно это получается совсем уж негибкий вариант, и потому не годится. А какие ещё есть лёгкие просмотровщики, уместные в Antique? Может, какой-то из них открывает картинки "нормальным" способом? Тогда вопрос решится. Правда, в таком случае решение будет пристёгнуто именно к этому просмотровщику.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 19.10.2010, 21:14
Сообщение #34


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


А не проще ковырнуть сам Мираж и кое-что в нём приписать, чтобы он, открывая файл, отправлял его адрес туда, откуда его будет тут же забирать скрипт, о котором мы тут выше говорили?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 19.10.2010, 21:20
Сообщение #35


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 19.10.2010, 21:14) *
А не проще ковырнуть сам Мираж и кое-что в нём приписать, чтобы он, открывая файл, отправлял его адрес туда, откуда его будет тут же забирать скрипт, о котором мы тут выше говорили?

Можно и так, только перепакечивать его надо будет под другим именем, если можешь хакни его smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 20.10.2010, 17:50
Сообщение #36


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


План простой. В меню Миража будет пункт "Выбор фона" (или нечто подобное), а к нему пристёгнута функция, отправляющая адрес открытого файла в условленное место (в файл с фиксированным именем хотя бы), откуда его немедленно забирает wmfon и записывает в соответствующую переменную; дальше всё ясно. Сейчас роюсь в Мираже (копию его сделал, с ней и химичу), размышляя, как это реализовать; никогда не бродил по такой большой (для меня) программе, сложно ориентироваться, тем более что успел уже отчасти подзабыть то немногое, что знал о Питоне wink.gif
Думаю, это самый простой способ сделать предпросмотр, не притягивая дополнительного софта.

Цитата(kostyalamer @ 19.10.2010, 21:20) *
только перепакечивать его надо будет под другим именем

Это с лицензией связано?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 20.10.2010, 20:12
Сообщение #37


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Это связано не с лицензией, а с обновлениями, при первом обновлении из бранча на более свежую версию пакета, пропатченный mirage будет заменен на нормальный
и wmfon работать не будет. Хотя если поставить родной mirage в параллель к пропатченному, тоже получится бардак, значит надо прописывать зависимость на удаление, в общем все довольно паршиво с этими форками получается wink.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 20.10.2010, 20:24
Сообщение #38


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Можно, наверное, использовать пропатченный Мираж под его собственным именем, а в дистр добавить скрипт, который будет автоматически заново патчить Мираж после каждого его обновления - только не знаю, насколько это сложно. Конечно, если есть какой-то более простой способ решения проблемы с предпросмотром, то можно его попробовать, но вроде как такового не видно.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 20.10.2010, 20:55
Сообщение #39


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Альтернативный способ вижу только один , написать просмотровщик самому, задача довольно интересная, но у меня сейчас на нее нет времени, так что либо mirage ковыряй, либо просмотровщик пиши smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 21.10.2010, 19:54
Сообщение #40


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Если просмотровщик писать на замену Миражу, то он же у меня заведомо хуже Миража получится. А если чисто для предпросмотра в wmfon, то зачем в дистре-минималке две дублирующих программы, и стоит ли дело труда? Уж лучше попробую, как время будет, слегка хакнуть Мираж wink.gif


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 21.10.2010, 20:00
Сообщение #41


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 21.10.2010, 19:54) *
Если просмотровщик писать на замену Миражу, то он же у меня заведомо хуже Миража получится. А если чисто для предпросмотра в wmfon, то зачем в дистре-минималке две дублирующих программы, и стоит ли дело труда? Уж лучше попробую, как время будет, слегка хакнуть Мираж wink.gif

Хакай, полезное и увлекательное дело good.gif Опакетим это безобразие и запихаем в наши сборки !
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 25.10.2010, 23:00
Сообщение #42


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Вроде готово. Запускаешь wmfon, жмёшь "Просмотр", запускается Мираж, открываешь там нужную картинку, далее "Файл - Select", закрываешь Мираж, в wmfon жмёшь "Выбор фона" - и наслаждаешься новой картинкой на рабочем столе smile.gif Видимо, что-то можно улучшить, и с обновлением Миража проблема остаётся, но хотя бы в общем вопрос, похоже, решён. Модифицированные mirage и wmfon хотел выложить здесь, но почему-то неудачно. Константин, я тебе их лучше электронкой отправлю.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 25.10.2010, 23:10
Сообщение #43


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Отлично ! отправляй smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 26.10.2010, 15:50
Сообщение #44


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Ещё немного подправил wmfon : в конец функции prosmotr дописал строку
f_name(event)
а кнопку "Выбор фона" убрал как ставшую лишней. Теперь при закрытии Миража wmfon меняет фоновую картинку автоматически.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 26.10.2010, 18:16
Сообщение #45


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 26.10.2010, 15:50) *
Ещё немного подправил wmfon : в конец функции prosmotr дописал строку
f_name(event)
а кнопку "Выбор фона" убрал как ставшую лишней. Теперь при закрытии Миража wmfon меняет фоновую картинку автоматически.

То что надо, а то меня лишняя кнопка смущала, можно вот еще чего сделать твой хакнутый мираж переименовать например в mirage1 я его подложу в папку с прогой
и при опакечивании все это ляжет в папку /usr/share/wmfon, таким способом мы вообще уйдем от конфликтов с миражем. Присылай новую версию wmfon-а smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 26.10.2010, 18:39
Сообщение #46


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Вот он
Прикрепленные файлы
Прикрепленный файл  wmfon.py.tar.gz ( 1.22 килобайт ) Кол-во скачиваний: 1
 


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 26.10.2010, 20:19
Сообщение #47


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 26.10.2010, 18:39) *
Вот он

Отлично, теперь рассказывай куда подкладывать генно-модифицированный mirage.py , у себя в /usr/bin я вижу только mirage smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 26.10.2010, 20:42
Сообщение #48


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


/usr/lib/python2.5/site-packages


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 26.10.2010, 21:09
Сообщение #49


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Подсунул туда вместо mirage.py , пока работать не хочет :
Код
[/home/k/wmfon-1.2/1] python -u "wmfon.py"
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1414, in __call__
    return self.func(*args)
  File "wmfon.py", line 83, in prosmotr
    f_name(event)
  File "wmfon.py", line 89, in f_name
    vybor(event)
  File "wmfon.py", line 64, in vybor
    strrnew=strru + fimg +strrd
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 12: ordinal not in range(128)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 26.10.2010, 21:27
Сообщение #50


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Ну это же wmfon не запускается, а не Мираж. У меня всё на ура идёт. Может, при архивировании/сжатии что-то поломалось? А, кстати, мой Мираж сам по себе ( python /usr/lib/python2.5/site-packages/mirage.py) запускается?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 26.10.2010, 21:40
Сообщение #51


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Все запускается, эти ошибки появляются когда нажимаешь на кнопку выход в мираже, mirage.py запускается нормально smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 26.10.2010, 21:49
Сообщение #52


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Проверил аж несколько раз : сообщений об ошибках никаких, фон успешно заменяется.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 26.10.2010, 21:50
Сообщение #53


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Дело темное, буду разбираться !
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 27.10.2010, 8:49
Сообщение #54


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Чудеса да и только, после перезагрузки компа все нормально работает smile.gif , никаких ошибок. Иван 2 предложения по-проге :
1) переименовать кнопку Просмотр в кнопку Выбрать фон
2) сделать кнопку Справка при нажатии на которую вываливается краткая инструкция по работе с прогой, главное напиши там о необходимости нажимать на Select в мираже для выбора картинки.
3) пока ты об этом думаешь, я подумаю как эту штуку пакетить.
PS Иван, отличная прога получилась, теперь ты настоящий кодер good.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 27.10.2010, 18:59
Сообщение #55


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Ну, настоящий или нет, а приятно, что получилось нечто хоть немного полезное smile.gif
Прилагаю обновлённый вариант wmfon'а. Справку, конечно, можно и подформатировать, но сейчас нет времени разбираться, как это делается.
Прикрепленные файлы
Прикрепленный файл  wmfon.py.tar.gz ( 1.54 килобайт ) Кол-во скачиваний: 2
 


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 27.10.2010, 21:47
Сообщение #56


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Отлично , со справкой есть 2 варианта сейчас объясню тебе как это делается в принципе, будет полезно на будущее прием простой но полезный, я такими штуками пользуюсь постоянно. Итак при нажатии на справку у тебя каждый раз открывается текстовое поле, а старое не закрывается.
В общем тебе надо отслеживать кол-во нажатий кнопки что-бы сделать из нее триггер на первое нажатие окно открывается, на второе закрывается
Делаешь какую либо переменную n и указываешь ее значение равной n= 2 в начале проги .В процедуре обработчика кнопок ( кстати не забудь указать в ней global n ) выполняешь
проверку четности :
global n
m = n%2 # остаток от деления на 2
if m == 0 :
....# открываем окно
else :
.... # закрываем окно
n= n+1
после чего выходим из процедуры.
Очень неплохо открывать справку в дочернем окне ( при этом лучше рамку с кнопкой закрытия у него отрубить , а то пользователь закроет его крестом и получится так что для получения следующего окна со справкой надо будет 2 раза нажимать на кнопку закрыть, ничего страшного в принципе , но бага )
Можно и в основном конечно, но тогда надо будет боюсь решать лишние проблемы с геометрией, для восстановления исходного р-ра окна. В общем нет предела совершенству smile.gif
Да я думаю кнопки выход и справка надо сделать такого-же р-ра как и остальные.
А прога получилась не просто полезная а очень полезная smile.gif , так что допиливай ее дальше по-мере возможности и в репу ей клубную и в репу по antique и в мою репу по WM-у ей будет прямая дорога good.gif
PS так как движок форума игнорирует несколько пробелов подряд заменил их на точки

Сообщение отредактировал kostyalamer - 27.10.2010, 21:52
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 28.10.2010, 17:58
Сообщение #57


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Не успел выяснить, как справку пристегнуть к основному окну, а вообще получилось примерно так :
Прикрепленные файлы
Прикрепленный файл  wmfon.py.tar.gz ( 1.64 килобайт ) Кол-во скачиваний: 5
 


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 28.10.2010, 21:50
Сообщение #58


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Со справкой получилось все отлично , я нашел кстати в чем глюк с mirage:
Попробуй открыть папку с картинками с кирилическим именем например ~/Обои , на этом все рушится :
Код
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1414, in __call__
    return self.func(*args)
  File "wmfon.py", line 85, in prosmotr
    f_name(event)
  File "wmfon.py", line 91, in f_name
    vybor(event)
  File "wmfon.py", line 66, in vybor
    strrnew=strru + fimg +strrd
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 12: ordinal not in range(128)
<Tkinter.Event instance at 0xb6e4afac>
*** Exited with status 1 ***


в самом wmfon проблема решается так:

Код
os.path.expanduser('~')
         f = open(os.path.expanduser('~')+'/GNUstep/Defaults/WindowMaker','r',2)
         strr = f.read().decode('utf-8')
         f.close
         i = strr.find('WorkspaceBack = (')
         j = strr.find('\"',i)
         k = strr.find('\"',j+1)
         strru=strr[:j+1]
         strrd=strr[k:]
         strrnew=strru + fimg +strrd          
        
         f = open(os.path.expanduser('~')+'/GNUstep/Defaults/WindowMaker','w',2)
         f.write(strrnew.encode('utf-8'))
         f.close

видимо проблема где-то в mirage, при попытке записи пути файла.
надо подключить к ней модуль codecs и доработать запись имени файла, хотя возможно еще f_name косячит с кодировкой, погляди smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 29.10.2010, 18:05
Сообщение #59


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Мираж записывал имя файла нормально, так что в нём ничего менять не стал. А вот f_name исправил :

Код
def f_name(event):
        global fimg
        s = open("/tmp/s","r")
        fimg = unicode(s.read(), "utf8")
        vybor(event)


Теперь всё работает и тогда, когда картинки в каталоге с кириллическим именем.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 29.10.2010, 18:55
Сообщение #60


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Отлично, на выходных постараюсь опакетить smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.10.2010, 17:34
Сообщение #61


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Ну вот собрал пакетик, причем он с mirage совершенно не конфликтует, а наоборот, в нем mirage прописан в зависимостях. В общем хакерской программе хакерский пакет biggrin.gif
Просьба потестить после чего засуну во все наши репы :
http://kostyalamer.narod.ru/wmfon/wmfon-1.3-alt1.noarch.rpm
http://kostyalamer.narod.ru/wmfon/wmfon-1.3-alt1.src.rpm
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 30.10.2010, 18:13
Сообщение #62


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Код
def prosmotr(event):
        pr = subprocess.Popen('/home/k/wmfon-1.3/mirage')
    pr.communicate()
    f_name(event)


/home/k/ - это зачем? При нажатии кнопки "Выбор фона" :

Код
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1414, in __call__
    return self.func(*args)
  File "wmfon.py", line 83, in prosmotr
    pr = subprocess.Popen('/home/k/wmfon-1.3/mirage')
  File "/usr/lib/python2.5/subprocess.py", line 594, in __init__
    errread, errwrite)
  File "/usr/lib/python2.5/subprocess.py", line 1097, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
<Tkinter.Event instance at 0xb6728aac>


Или я чего-то не понимаю?


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.10.2010, 18:22
Сообщение #63


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Да уж , осталось от экспериментов, сейчас поправлю !
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.10.2010, 18:35
Сообщение #64


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Поменял пакеты на исправленные, скачивай по тем же ссылкам.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 30.10.2010, 18:48
Сообщение #65


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Теперь работает, ошибок не заметно.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.10.2010, 19:13
Сообщение #66


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 30.10.2010, 18:48) *
Теперь работает, ошибок не заметно.

Отлично, сейчас залью его в клубную репу и мою репу для WM-а, заодно подправлю статью на сайте и если успею в рассылку для Олега его отправлю.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.10.2010, 21:22
Сообщение #67


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Залил куда мог wink.gif , и на сайт тоже : http://kostyalamer.narod.ru/wmfon/wmfon.html
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 30.10.2010, 21:31
Сообщение #68


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Цитата(kostyalamer @ 30.10.2010, 21:22) *

Приятно почитать smile.gif Только ведь прога мною не написана, а модифицирована (как вирусом biggrin.gif) или усовершенствована или что-то в этом роде.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.10.2010, 21:38
Сообщение #69


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Эта версия написана точно тобой , так что принимай поздравления smile.gif , надо будет подумать к чему бы еще приложить твои кодерские способности !
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 30.10.2010, 21:52
Сообщение #70


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


У меня сейчас всяческие интернетовские соединения (завязанные большей частью на спутник) раскиданы как попало и автоматизированы самопальными мини-скриптами на shell; причём отчасти конфликтуют между собой, потому что сложно там всё : gprs задействован, спутник, локальный прокси, плюс перебои со связью добавляют проблем. Думаю написать на Питоне скрипт, который создаст единый интерфейс (графический, конечно) для всего этого хозяйства, в том числе для быстрого (нажатием кнопки) разрешения конфликтов. План, в принципе, уже составлен, только времени сейчас на программирование нет. Эта программа может и некоторым другим здесь пригодиться : спутниковая тарелка у нас в деревне - штука очень важная. Ну и для Antique, если нужно, готов поработать, только не прямо сейчас.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 15.12.2010, 19:26
Сообщение #71


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Тоже начал потихоньку осваивать питон. Сначала пробовал изучать С++ и QT, но здесь вырисовывается долгий и сложный вариант... А на питоне как то все прост, легко и сразу получается, т.е. производительность труда намного выше. В общем, наш метод... Может к январю не торопясь напишу программку по автоматизации приема данных с телеметрии.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 15.12.2010, 20:21
Сообщение #72


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Да, Питон в самом деле легко осваивается. Я, правда, сейчас от него отвлёкся (и то, о чём в предыдущем сообщении говорил, остановилось ещё на стадии совершенствовании shell-скриптов), но, когда более-менее свободное время появится, непременно опять займусь Питоном.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 17.12.2010, 18:55
Сообщение #73


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Продолжаю писать скриптик (пока в виндос smile.gif ) и возникли некие сложности.
Собственно скриптик представляет простейшую форму с кнопками, которые запускают 2 консольные программки. При запуске питон-скрипта одновременно появляется два окна, одно GUI, а второе окно консоли, в котором эти программки выводят сообщения.
Это удобно , но некрасиво как то. Окно консоли можно убрать, сменив расширение файла py на pyw. Но тогда теряется и информация от программок. Хотелось бы как то перенаправить вывод из консоли в текстовый виджет tkinter, т.е. сделать виртуальное окошко консоли, но никак не найду способа.

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 17.12.2010, 19:45
Сообщение #74


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Боюсь, что одного Tkinter-а для этой цели не хватит, нужно поглядеть в сторону модуля subprocess, в нем реализована возможность перехвата вывода консольных команд, в переменную или файл : http://wiki.dieg.info/doku.php/subprocess
в простейших случаях можно и модулем os обойтись :
http://forum.vingrad.ru/forum/topic-109919/view-all.html
есть и другой способ : http://www.pydev.ru/topic/213/?page=1#post-933
Ну а загнать из переменной или файла текст в поле формы это уже дело техники.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 17.12.2010, 20:53
Сообщение #75


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Спасибо, попробую.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 11.9.2011, 8:57
Сообщение #76


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


После некоторого перерыва опять вернулся к питонам. И столкнулся со шрифтами. Почему то tkinter дает разные относительные размеры шрифтов в разных ос. Например, в виндовсе они слишком большие, в линуксе маленькие. Прикрутил к программе менюшку, позволяющую устанавливать разммр вручную, но может есть другое какое решение?
ЗЫ: наткнулся на малоизвестный проект GUI для tkinter, называется PAGE. http://page.sourceforge.net/#Documentation Если он окажется легким в освоении, то это очень упростит разработку небольших питоновских tk программок

Сообщение отредактировал and - 11.9.2011, 20:34
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 13.9.2011, 19:04
Сообщение #77


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Цитата(and @ 11.9.2011, 8:57) *
И столкнулся со шрифтами. Почему то tkinter дает разные относительные размеры шрифтов в разных ос. Например, в виндовсе они слишком большие, в линуксе маленькие. Прикрутил к программе менюшку, позволяющую устанавливать разммр вручную, но может есть другое какое решение?

Наверное, лучше спрашивать там, где много спецов по Питону. Я, помнится, там буквально тонул в подобных частностях, на которые непонятно где взять ответ, хотя в общем в Питоне вроде как всё просто и ясно biggrin.gif А сейчас им и заниматься некогда sad.gif


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 13.9.2011, 22:30
Сообщение #78


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 13.9.2011, 19:04) *
Наверное, лучше спрашивать там, где много спецов по Питону. Я, помнится, там буквально тонул в подобных частностях, на которые непонятно где взять ответ, хотя в общем в Питоне вроде как всё просто и ясно biggrin.gif А сейчас им и заниматься некогда sad.gif

Да, мне сейчас к сожалению тоже пока не до python-а.
А форум хороший вот : http://forum.script-coding.com/viewforum.php?id=16&p=1 там можно поспрашивать насчет шрифтов.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 15.9.2011, 17:49
Сообщение #79


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Спасибо, поспрашиваю. В том то и дело, что основы в любой области простые, а стоит чуть залезть в детали и начинается.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
komcumir
сообщение 12.10.2011, 12:46
Сообщение #80


Любитель
***

Группа: Пользователь
Сообщений: 53
Регистрация: 12.10.2010
Вставить ник
Цитата
Пользователь №: 1951
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 0


Практически под влиянием этой темы сел изучать питон, написал lines, если есть у кого возможность потестите плиз )

Сообщение отредактировал komcumir - 12.10.2011, 14:02
Прикрепленные файлы
Прикрепленный файл  linespy.zip ( 94.84 килобайт ) Кол-во скачиваний: 6
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ksa
сообщение 12.10.2011, 13:40
Сообщение #81


Профессионал
*******

Группа: Активный Пользователь
Сообщений: 1479
Регистрация: 7.6.2011
Вставить ник
Цитата
Пользователь №: 2118
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 5


Это игрушка чтоль ?
PS Какие зависимости ? Попробую затестить.

Сообщение отредактировал ksa - 12.10.2011, 13:41


--------------------
Пакеты на яндекс.диске
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
komcumir
сообщение 12.10.2011, 14:03
Сообщение #82


Любитель
***

Группа: Пользователь
Сообщений: 53
Регистрация: 12.10.2010
Вставить ник
Цитата
Пользователь №: 1951
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 0


Цитата(ksa @ 12.10.2011, 13:40) *
Это игрушка чтоль ?
PS Какие зависимости ? Попробую затестить.

да игрушка lines (в первом приближении) зависимостей кроме питона вроде бы нет, файл перезалил (забыл в первом реализовать одно из правил lines)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ksa
сообщение 12.10.2011, 16:34
Сообщение #83


Профессионал
*******

Группа: Активный Пользователь
Сообщений: 1479
Регистрация: 7.6.2011
Вставить ник
Цитата
Пользователь №: 2118
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 5


Цитата(komcumir @ 12.10.2011, 15:03) *
да игрушка lines (в первом приближении) зависимостей кроме питона вроде бы нет, файл перезалил (забыл в первом реализовать одно из правил lines)

Ну, тогда надо бы еще выводить "game over" при заполнении всего поля, а то сейчас игра просто висит и ни на что не реагирует в такой ситуации...
PS В остальном, вроде, играбельно.

Сообщение отредактировал ksa - 12.10.2011, 17:43


--------------------
Пакеты на яндекс.диске
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 12.10.2011, 21:40
Сообщение #84


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(komcumir @ 12.10.2011, 12:46) *
Практически под влиянием этой темы сел изучать питон, написал lines, если есть у кого возможность потестите плиз )

1) Погляди еще эту темку : http://forum.altlinux.org/index.php/topic,...7.html#msg96647
2) Все работает smile.gif , еще бы расширить окно и добавить на него счетчик очков и показ следующих выпадающих шариков. И звуков бы не помешало каких-нибудь.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
komcumir
сообщение 13.10.2011, 9:44
Сообщение #85


Любитель
***

Группа: Пользователь
Сообщений: 53
Регистрация: 12.10.2010
Вставить ник
Цитата
Пользователь №: 1951
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 0


Цитата(ksa @ 12.10.2011, 16:34) *
Ну, тогда надо бы еще выводить "game over" при заполнении всего поля, а то сейчас игра просто висит и ни на что не реагирует в такой ситуации...
PS В остальном, вроде, играбельно.


ну дык еще не доделана ), остальное уже по мелочи осталось ) главное было реализовать поиск пути и удаление шаров...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 14.10.2011, 18:45
Сообщение #86


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Для желающих поэкспериментировать с python3 на сервере 179 школы имеется инструкция по его установке в альт линукс
http://server.179.ru/wiki/?page=DenisKirie...Linux&v=5z2
Python3 установиться в каталог /usr/local/bin

Для его вызова используем команду python3
Чтобы она выполнялась добавим путь поиска /usr/local/bin в системную переменную PATH
Для этого открываем в домашнем каталоге файл .bash_profile
находим там строчку:
# User specific environment and startup programs
и добавляем после нее:
PATH="$HOME/bin: $PATH:/usr/local/bin"
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 15.10.2011, 19:09
Сообщение #87


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Всем хороша связка Geany + Python, только нет отладчика. А очень было бы удобно походить по шагам, посмотреть как меняются переменные.
Вот тут интересный пост с видео про консольный отладчик pdbpp. Там же ссылка на страницу его автора. Хорошо бы эту программу опакетить.

Сообщение отредактировал and - 15.10.2011, 19:11
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
komcumir
сообщение 17.10.2011, 11:51
Сообщение #88


Любитель
***

Группа: Пользователь
Сообщений: 53
Регистрация: 12.10.2010
Вставить ник
Цитата
Пользователь №: 1951
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 0


Новая версия linespy https://sourceforge.net/projects/linespy/fi....5.zip/download Есть Гейм-овер считает очки, таймер.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 17.10.2011, 20:25
Сообщение #89


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Цитата(komcumir @ 17.10.2011, 11:51) *
Новая версия linespy https://sourceforge.net/projects/linespy/fi....5.zip/download Есть Гейм-овер считает очки, таймер.

Ага. Потестил. Работает
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 17.10.2011, 20:53
Сообщение #90


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Если какого-то из модулей python нет в репозитории альта, то это не значит, что его нельзя установить.
Ищем и ставим в synaptic пакет python-module-setuptools.
В этом пакете находится программа easy_install, которая ищет питон модуль по имени и устанавливает его из официального сайта python.

Например, надо поставить модуль xlrd для чтения exel файлов, которого нет в репозитории альта.
В консоли заходим в режим суперпользователя и командуем:
[root<>gravity ~]# easy_install xlrd

Ответ машины:

Searching for xlrd
Reading http://pypi.python.org/simple/xlrd/
Reading http://www.lexicon.net/sjmachin/xlrd.htm
Best match: xlrd 0.7.1
Downloading http://pypi.python.org/packages/source/x/x...fb5ccca2d22b81c
Processing xlrd-0.7.1.zip
Running xlrd-0.7.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-A2ofKq/xlrd-0.7.1/egg-dist-tmp--9my5j
zip_safe flag not set; analyzing archive contents...
Adding xlrd 0.7.1 to easy-install.pth file
Installing runxlrd.py script to /usr/bin

Installed /usr/lib/python2.5/site-packages/xlrd-0.7.1-py2.5.egg
Processing dependencies for xlrd
Finished processing dependencies for xlrd

Итак, модуль успешно установлен.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 26.12.2011, 20:08
Сообщение #91


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Цитата(kostyalamer @ 25.12.2011, 17:24) *
Почитай интересную статейку на эту тему , не далее как вчера чуть-чуть допиливал wmfon, очень помогла:
http://asvetlov.blogspot.com/2011/03/subprocess.html
Кстати обновленный wmfon в репе, теперь mirage открывается не с пустым окном, а с изображениями из /usr/share/design-current/backgrounds/
посредством команды :
pr = subprocess.Popen(['/usr/share/wmfon/mirage','-R','/usr/share/design-current/backgrounds/'], shell=False)
в твоем случае наверное:
subprocess.call(['cd',' <некий каталог>'], shell=False)

Прошёл по ссылке, но у меня не то : я как раз использую строку+shell=True или список+shell=False.
Код
>>> subprocess.call(['cd','~'], shell=False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/subprocess.py", line 470, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
    errread, errwrite)
  File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
>>> subprocess.call(['cd ~'],shell=True)
0
>>> subprocess.call('pwd', shell=True)
/
0
>>>

В первом случае ошибка, во втором якобы ОК, а на деле каталог не меняется (Питон в данном случае запущен из / "
Причём другие команды (какие запускал), кроме cd, работают ведь нормально.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ИВК
сообщение 28.12.2011, 22:26
Сообщение #92


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10142
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


to kostyalamer
Костя, ты никогда не пробовал организовать обмен данными между питоновским скриптом и и вызванным из него Xterm'ом? В манах и инете кое-что есть на эту тему, но применить почему-то не получается. Сначала что-то типа
Код
a = subprocess.Popen('xterm', shell = True, stdin = subprocess.PIPE, stdout=subprocess.PIPE)

а потом хоть с communicate(), хоть без него - результата нет. То есть окошко Xterm появляется, но каких-либо признаков контакта его с моим скриптом не могу уловить wink.gif То же самое, если Питон в интерактивном режиме - соединиться с Xterm и тогда не получается.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 29.12.2011, 6:45
Сообщение #93


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 28.12.2011, 22:26) *
to kostyalamer
Костя, ты никогда не пробовал организовать обмен данными между питоновским скриптом и и вызванным из него Xterm'ом? В манах и инете кое-что есть на эту тему, но применить почему-то не получается. Сначала что-то типа
Код
a = subprocess.Popen('xterm', shell = True, stdin = subprocess.PIPE, stdout=subprocess.PIPE)

а потом хоть с communicate(), хоть без него - результата нет. То есть окошко Xterm появляется, но каких-либо признаков контакта его с моим скриптом не могу уловить wink.gif То же самое, если Питон в интерактивном режиме - соединиться с Xterm и тогда не получается.

Делал, правда это было давно:
Код
f = subprocess.Popen('mplayer -slave -quiet -input file=/tmp/mpinfile cdda://%s' %trk, shell = True, stdout = subprocess.PIPE, stdin = subprocess.PIPE )
        
    print "1home info"
    n = f.stdout.readline(-1)#MPlayer 29766-4.4.1 (C) 2000-2009 MPlayer Tea
    print "1-"+ n
    n = f.stdout.readline(-1)#141 аудио & 305 видео кодеков
    print "2-"+ n
    n = f.stdout.readline(-1)#Terminal type `unknown' is not defined.
    print "3-"+ n
    n = f.stdout.readline(-1)#Пустая строка
    print "4-"+ n
    n = f.stdout.readline(-1)#Воспроизведение cdda://1.
    print "5-"+ n
    try:
       n = f.stdout.readline(-1)#Найден аудио CD с 19 дорожками. здесь ловить ошибку отсутствия диска !

архив с программой в прицепе, погляди там сам что к чему :
Прикрепленный файл  wmcdplayer_1.0.tar.gz ( 3.83 килобайт ) Кол-во скачиваний: 1
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 21.1.2012, 18:06
Сообщение #94


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Кстати, на ютубе имеется видеокурс по освоению питона с нуля http://www.youtube.com/watch?v=jMg12k-v75g
А еще питон изучают в Сколково smile.gif http://www.youtube.com/watch?v=5bh3NNYKO-0...feature=related

Сообщение отредактировал and - 21.1.2012, 18:19
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Skull
сообщение 23.1.2012, 11:20
Сообщение #95


Крупный специалист
*****

Группа: Пользователь
Сообщений: 476
Регистрация: 30.11.2009
Вставить ник
Цитата
Пользователь №: 1722
Страна: Россия
Город: Климовск/Московской
Пол: Муж.



Репутация: 6


Цитата(and @ 21.1.2012, 17:06) *
А еще питон изучают в Сколково smile.gif http://www.youtube.com/watch?v=5bh3NNYKO-0...feature=related
Потому что хотят сделать кальку с MIT. smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 2.9.2012, 22:10
Сообщение #96


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Нашел хорошую инфу по Tkinter-у good.gif может кому-нибудь пригодится :
http://ru.wikiversity.org/wiki/%CA%F3%F0%F...FB%EA%E0_Python

Сообщение отредактировал kostyalamer - 2.9.2012, 22:11
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
and
сообщение 4.9.2012, 21:38
Сообщение #97


Мастер
******

Группа: Пользователь
Сообщений: 530
Регистрация: 22.8.2007
Вставить ник
Цитата
Пользователь №: 317
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 6


Цитата(kostyalamer @ 2.9.2012, 21:10) *
Нашел хорошую инфу по Tkinter-у good.gif может кому-нибудь пригодится :

Cпасибо, материал интересный.
Все-таки жалко, что для tkintera не разработан простой конструктор форм в духе Gambas или visual бейсика. Page все таки немного не то, его код надо существенно править ручками.
Еще наткнулся на проект для винды Visual Tkinter Python IDE http://sourceforge.net/projects/visualtkinter/ Судя по роликам с ютуба по задумке это самое то, но по исполнение похоже очень сырое. Официальный сайт не работает, для установки требуется dotnet, На моем компе оно не пошло, на работе половина работает, половина нет, например невозможно сменить имя кнопки - dotnet выбрасывает какой то exception. В общем, увы и ах dry.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tema
сообщение 4.4.2017, 23:05
Сообщение #98


Мастер
******

Группа: Активный Пользователь
Сообщений: 553
Регистрация: 4.2.2016
Вставить ник
Цитата
Пользователь №: 2850
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Перенесено из темы "Выбор IDE"

Долго ловил книгу на ОЗОНе. Поймал smile.gif
Теперь грызу Питон по книге smile.gif
Прикрепленные файлы
Прикрепленный файл  IMG_20170404_210429.jpg ( 2.73 мегабайт ) Кол-во скачиваний: 4
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tema
сообщение 5.4.2017, 21:11
Сообщение #99


Мастер
******

Группа: Активный Пользователь
Сообщений: 553
Регистрация: 4.2.2016
Вставить ник
Цитата
Пользователь №: 2850
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Пока не очень понял как работать с кнопками на форме... Тяжко в чужой программе сходу...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 5.4.2017, 21:39
Сообщение #100


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(tema @ 5.4.2017, 21:11) *
Пока не очень понял как работать с кнопками на форме... Тяжко в чужой программе сходу...

Tkinter осваиваешь или PyQt ? Если tkinter , то вот хороший учебник : http://younglinux.info/tkinter.php , если Qt то это к Ивану smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

4 страниц V   1 2 3 > » 
Ответить в эту темуОткрыть новую тему
( Гостей: 1 )
Пользователей: 0

 



RSS Текстовая версия Сейчас: 18.6.2025, 5:25