Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

сдвинуть содержимое в text

0 views
Skip to first unread message

Stas Vlasov

unread,
Aug 6, 2006, 8:06:01 AM8/6/06
to
Здравствуйте, господа.

Пытаюсь заставить скроллиться текст.
Пока не получается.

Собственно, ниже скрипт, который показывает текстовое поле со строкой,
которую должен в этом поле скроллить. Пробовал два варианта, оба есть в
теле письма, оба не производят никаких действий на вид окна.

#!/usr/bin/wish

wm title . "scroll test";

text .scroller -height 1 -width 10;

pack .scroller -side top -fill x;

set scrolltext "qwertyuiop asdfghjkl zxcvbnm"

.scroller delete 1.0 end;
.scroller insert end $scrolltext;

proc scrl_update position {
global scrolltext;
set position [expr $position + 1];
if {$position>=[string length .$scrolltext]} {set position 0};

# заготовка для обновления текста, для дальнейшего развития.
# .scroller delete 1.0 end;
# .scroller insert end $scrolltext;

# variant 1
#.scroller xview scroll $position units;

# variant 2
set pos [ expr 1.0 * $position / [string length .$scrolltext]];
.scroller xview moveto $pos;

after 2000 scrl_update $position;

puts $position; # debug output
}

scrl_update 0;
tkwait window .


--
Stanislav

Victor Wagner

unread,
Aug 6, 2006, 1:25:56 PM8/6/06
to
Stas Vlasov <Stas....@p172.f172.n5080.z2.fidonet.org>
wrote:
SV> Здравствуйте, господа.
SV> Пытаюсь заставить скроллиться текст. Пока не получается.
SV> Собственно, ниже скрипт, который показывает текстовое поле
SV> со строкой, которую должен в этом поле скроллить. Пробовал
SV> два варианта, оба есть в теле письма, оба не производят

Стандартный способ сделать прокрутку текста из программы - команда
see текстового видгета. С xview и yview возиться лучше предоставить
scrollbar-у, он это умеет.

А так, если нужно сделать аналог tail - добавить строки в конец и
убедиться что они видимы, то

$text insert end "some lines"
$text see end


Kirill Frolov

unread,
Aug 6, 2006, 4:32:00 PM8/6/06
to
On Sun, 06 Aug 2006 16:06:01 +0400, Stas Vlasov wrote:

> Пытаюсь заставить скроллиться текст.
> Пока не получается.

Вместо text лучше получится с canvas. Если строка скроллится
циклически, то их надо две подряд склеить. А дальше просто раз в N
миллисекунд (~20мс) крутить scrollregion.


Kirill Frolov

unread,
Aug 6, 2006, 4:34:00 PM8/6/06
to
On Sun, 6 Aug 2006 17:25:56 +0000 (UTC), Victor Wagner wrote:

> А так, если нужно сделать аналог tail - добавить строки в конец и
> убедиться что они видимы, то

+ set yview [$text yview]


$text insert end "some lines"

- $text see end
+ if {[lindex $yview 1] == 1.0} {$text see end}

Stas Vlasov

unread,
Aug 7, 2006, 12:53:48 PM8/7/06
to
Victor Wagner <vi...@45.free.net> wrote:

SV>> Здравствуйте, господа.
SV>> Пытаюсь заставить скроллиться текст. Пока не получается.
SV>> Собственно, ниже скрипт, который показывает текстовое поле
SV>> со строкой, которую должен в этом поле скроллить. Пробовал
SV>> два варианта, оба есть в теле письма, оба не производят

VW> Стандартный способ сделать прокрутку текста из программы - команда
VW> see текстового видгета. С xview и yview возиться лучше предоставить
VW> scrollbar-у, он это умеет.

Попробовал.
Hесколько не то.
Hедостаточно плавно.

VW> А так, если нужно сделать аналог tail - добавить строки в конец и
VW> убедиться что они видимы, то

Hет, tail мне не нужен.
Я тут практики ради и здоровья для делаю морду к mpd на tcl/tk, чтобы
прикрутить ее к FvwmButtons. Осталось сделать скорллинг названия
мелодии.

--
Stanislav

Stas Vlasov

unread,
Aug 7, 2006, 12:54:22 PM8/7/06
to
Kirill Frolov <f...@fk0.pp.ru> wrote:

>> Пытаюсь заставить скроллиться текст.
>> Пока не получается.

KF> Вместо text лучше получится с canvas. Если строка скроллится
KF> циклически, то их надо две подряд склеить. А дальше просто раз в N
KF> миллисекунд (~20мс) крутить scrollregion.

Хм... Мысль интересная.
Буду ее думать.

--
Stanislav

0 new messages