Найти - Пользователи
Полная версия: Бегущая строка.
Начало » GUI » Бегущая строка.
1
nauman
Хочу создать интерактивную бегущую строку в графическом окне. Окно создать при помощи WX модуля не проблема, а вот анимацию текста не знаю как. Гуглом вообще ничего не нашел на эту тему. Есть ли варианты? Спасибо.
Piton23
Ну а че сложного то? Срез строки знаешь что такое? В цикле прогони, и выводи срез строки в соответсвующий виджет (статус бар или в другое место куда тебе надо). Прикрутишь таймер и все будет ок. Выкладывай наработки свои, дальше будем смотреть что да как.
nauman
Piton23
Прикрутишь таймер и все будет ок.
Через промежуток времени смещение координат отображения текста, я правильно понял?
Вообще то строка берется из словаря, в качестве значения url адрес. Задумка такая - инфа парсится с сайта заностся в словарь, кликаешь мышью по бегущей строке, открывается соответствующая веб страница в веб браузере.
Piton23
как то так в общем

>>> 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

А насчет того чтобы отловить линк (открыть в браузере) то тут надо подумать как правильно предоставить инфу. Теоретически если у тебя поле на 10 символов, то в каждый момент времени ты по сути знаешь в какой начинается и в какой заканчивается у тебя линк, и если клик мыши попал в этот диапазон в заданное время то генерится событие. Может есть и более простое решение, но пока первое что пришло в голову, мб кто другой подскажет.
py.user.next
>>> 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)                             
>>>
FishHook
А если в Qt сделать Label с HTML
<marquee>Some text</marquee>
получится бегущая строка?
Стало интересно, а попробовать пока возможности нет.
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