Форум сайта python.su
Хочу создать интерактивную бегущую строку в графическом окне. Окно создать при помощи WX модуля не проблема, а вот анимацию текста не знаю как. Гуглом вообще ничего не нашел на эту тему. Есть ли варианты? Спасибо.
Офлайн
Ну а че сложного то? Срез строки знаешь что такое? В цикле прогони, и выводи срез строки в соответсвующий виджет (статус бар или в другое место куда тебе надо). Прикрутишь таймер и все будет ок. Выкладывай наработки свои, дальше будем смотреть что да как.
Офлайн
Piton23Через промежуток времени смещение координат отображения текста, я правильно понял?
Прикрутишь таймер и все будет ок.
Отредактировано nauman (Июнь 12, 2012 20:49:41)
Офлайн
как то так в общем
>>> def show(text, maximum): text = ' ' * maximum + text for i in range(len(text)): print text[i:i+maximum] >>> text = 'Чемпионат европы 2012' >>> show(text, 12) Ч Че Чем Чемп Чемпи Чемпио Чемпион Чемпиона Чемпионат Чемпионат Чемпионат е Чемпионат ев емпионат евр мпионат евро пионат европ ионат европы онат европы нат европы 2 ат европы 20 т европы 201 европы 2012 европы 2012 вропы 2012 ропы 2012 опы 2012 пы 2012 ы 2012 2012 2012 012 12 2 >>> show(text, 20) Ч Че Чем Чемп Чемпи Чемпио Чемпион Чемпиона Чемпионат Чемпионат Чемпионат е Чемпионат ев Чемпионат евр Чемпионат евро Чемпионат европ Чемпионат европы Чемпионат европы Чемпионат европы 2 Чемпионат европы 20 Чемпионат европы 201 емпионат европы 2012 мпионат европы 2012 пионат европы 2012 ионат европы 2012 онат европы 2012 нат европы 2012 ат европы 2012 т европы 2012 европы 2012 европы 2012 вропы 2012 ропы 2012 опы 2012 пы 2012 ы 2012 2012 2012 012 12 2
Офлайн
>>> import time >>> >>> def show(text, maximum, delay): ... text = ' ' * maximum + text ... for i in range(len(text)): ... print('{0} \r'.format(text[i:i + maximum]), end='') ... time.sleep(delay) ... >>> show('a b c', 50, 0.3) >>>
Офлайн
А если в Qt сделать Label с HTML
<marquee>Some text</marquee>
Офлайн