Tcl Tk入門/Canvas/複数のキャンバスを同時にスクロール
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
''[[FrontPage]]''
* 複数のキャンバスを同時にスクロール [#a42d5045]
scrollbarのスクロールコマンド -command{}を横取りして複数...
サンプルコード上のコメントをもって解説に替える。~
** 制約事項 [#i8a979ce]
OSはWindows、Active_Tcl 8.5.5.0でぼちぼちと。~
~
~
ファイル名:test4.tcl
# Generate Canvases ************************************...
canvas .c -background white -width 486 -height 121 \
-scrollregion {5 2 5475 444} \
-xscrollcommand {.xsbar set} -yscrollcommand {.ysbar...
# .c configure -xscrollincrement 0.5i -yscrollincreme...
...
canvas .keyC -background white -width 50 -height 121 \
-scrollregion {5 2 55 444} -yscrollcommand {.ysbar s...
# .keyC configure -xscrollincrement 0.5i -yscrollincr...
...
.c create line 5 10 45 441 -fill black -width 1 ...
.keyC create line 5 10 45 441 -fill black -width 1 ...
...
scrollbar .xsbar -orient horizontal -command {.c xview} ...
scrollbar .ysbar -orient vertical -command {scrollMultip...
...
...
grid .keyC .c .ysbar -sticky news ...
grid .xsbar -row 1 -columnspan 3 -sticky ew ...
#/Generate Canvases ************************************...
# Scroll Multiple **************************************...
proc scrollMultiple { c keyC args } { ...
set cnt 0 ...
foreach elem $args { ...
set elemA($cnt) $elem ...
incr cnt ...
} ...
...
if { 3 == $cnt } { ...
$c yview $elemA(0) $elemA(1) $elemA(2) ...
$keyC yview $elemA(0) $elemA(1) $elemA(2) ...
} elseif { 2 == $cnt } { ...
$c yview $elemA(0) $elemA(1) ...
$keyC yview $elemA(0) $elemA(1) ...
} else { ...
return -1 ...
} ...
# $keyC yview $args ...
} ...
#/Scroll Multiple **************************************...
*** 修正履歴 [#p18f0936]
~
*** 課題 [#qe42e823]
かなり強引だけど、スクロールに関してはこれで事足りてる。~
落とし穴は無いか探している状態。~
-備考~
~
*** 参考ページ [#qcdeab74]
[Tcl/Tk めも: http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc...
終了行:
''[[FrontPage]]''
* 複数のキャンバスを同時にスクロール [#a42d5045]
scrollbarのスクロールコマンド -command{}を横取りして複数...
サンプルコード上のコメントをもって解説に替える。~
** 制約事項 [#i8a979ce]
OSはWindows、Active_Tcl 8.5.5.0でぼちぼちと。~
~
~
ファイル名:test4.tcl
# Generate Canvases ************************************...
canvas .c -background white -width 486 -height 121 \
-scrollregion {5 2 5475 444} \
-xscrollcommand {.xsbar set} -yscrollcommand {.ysbar...
# .c configure -xscrollincrement 0.5i -yscrollincreme...
...
canvas .keyC -background white -width 50 -height 121 \
-scrollregion {5 2 55 444} -yscrollcommand {.ysbar s...
# .keyC configure -xscrollincrement 0.5i -yscrollincr...
...
.c create line 5 10 45 441 -fill black -width 1 ...
.keyC create line 5 10 45 441 -fill black -width 1 ...
...
scrollbar .xsbar -orient horizontal -command {.c xview} ...
scrollbar .ysbar -orient vertical -command {scrollMultip...
...
...
grid .keyC .c .ysbar -sticky news ...
grid .xsbar -row 1 -columnspan 3 -sticky ew ...
#/Generate Canvases ************************************...
# Scroll Multiple **************************************...
proc scrollMultiple { c keyC args } { ...
set cnt 0 ...
foreach elem $args { ...
set elemA($cnt) $elem ...
incr cnt ...
} ...
...
if { 3 == $cnt } { ...
$c yview $elemA(0) $elemA(1) $elemA(2) ...
$keyC yview $elemA(0) $elemA(1) $elemA(2) ...
} elseif { 2 == $cnt } { ...
$c yview $elemA(0) $elemA(1) ...
$keyC yview $elemA(0) $elemA(1) ...
} else { ...
return -1 ...
} ...
# $keyC yview $args ...
} ...
#/Scroll Multiple **************************************...
*** 修正履歴 [#p18f0936]
~
*** 課題 [#qe42e823]
かなり強引だけど、スクロールに関してはこれで事足りてる。~
落とし穴は無いか探している状態。~
-備考~
~
*** 参考ページ [#qcdeab74]
[Tcl/Tk めも: http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc...
ページ名: