1 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 14:52:44 ] 【英語サイト】 プロジェクト本拠地 tcl.sourceforge.net/ 最新版ソースコード ftp://ftp.tcl.tk/pub/tcl/nightly-cvs/ The Tcler's Wiki wiki.tcl.tk/ The comp.lang.tcl Newsgroup groups.google.com/group/comp.lang.tcl/ ActiveTcl www.activestate.com/products/activetcl/ 【日本語サイト】 もっとTcl/Tk www.interq.or.jp/japan/s-imai/tcltk/ Tcl/Tk Scripting Laboratory www.geocities.jp/urano343/tcltk.html Tcl/Tk Primer mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/tcltk_primer/ Tcl 8.4.1 Manual Command Reference www.freesoftnet.co.jp/tclkits/doc/TclCmdRef/tcl_contents_jp.htm CategoryTclTk - mynote reddog.s35.xrea.com/wiki/CategoryTclTk.html 【前スレ】 ●●●●TCL/TKなら俺に聞け●●●● pc11.2ch.net/test/read.cgi/tech/1033628416/
511 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:07:57 ] namespace だから名前空間じゃないの?
512 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:13:13 ] >>511 モジュール書くときくらいしかほとんど用事がないんだがな。
513 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:59:54 ] 初心者です。便乗質問(?)なのですが、自分で作ったライブラリは皆さん パッケージ(モジュール?)にしてるのでしょうか? 自分はその方法が良く分からないので、とりあえずsourceコマンドで読むという 方法で凌いでます。 ところで、amazon.comによると、Tcl言語の設計者が書いた本の改訂版が出る ようですね。Tcl/tk 8.5に対応した内容に書き改めたとのこと。 Tclが日本でも再度注目されたりしないでしょうか。
514 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 14:17:45 ] >>513 パッケージも結局内部ではloadやらsourceやらで読み込んでたと思います。 利点は、パスを書かずにパッケージ名だけで呼び出せるから、 位置関係を気にしなくてよくなることぐらいでしょうか。 書き方は >>1 の日本語サイトの1つめと2つめにそれぞれ解説があります。
515 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 21:44:21 ] >>514 ありがとうございます。参考になりました。 ただ、開発途上のモジュールについても、皆さんパッケージ化されているのでしょうか? それなりの手順を踏まないとパッケージ化はできないようなので、モジュールの開発途上では、 やはり単にsource とかで読み込むのが普通なのでしょうかね?
516 名前:本田 [2009/09/13(日) 00:13:43 ] >Tcl言語の設計者が書いた本の改訂版が出るようですね。 90円台/ドルの円高なので今が廉く買うチャンスかも。
517 名前:本田 [2009/09/13(日) 00:42:31 ] package - パッケージのロードとバージョン制御機能。 www.freesoftnet.co.jp/tclkits/doc/TclCmdRef/TclCmd/package_jp.htm
518 名前:本田 [2009/09/13(日) 02:48:50 ] >>515 ウェルチさんの本によると、 packageは複数のアプリケーションから利用する時に使うそうです。
519 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 11:47:25 ] >>508 変数名が名前だとすると、名前空間は苗字・・・。 >>509 10年前の8.0から導入されました・・・。 >>510 全然独特じゃないと思うけど・・・。名前空間がある言語ない言語あるけど、 変数名とかにprefixを付けてバッティングしないようにするという意味での 名前空間は汎用的なプログラミング概念だと思う。 >>511-512 8.5からはnamespace ensembleが入ったので名前空間にコマンド群を まとめあげてサブコマンドを作ることも出来るようになった。。。 たしかにサブコマンドは名前空間の一種のような気もする・・・。 >>513 とりあえずsourceでいい。他人に配るときはpackageにするけど。 pacakgeなんて名前空間とそのバージョンを書いて、pkg_mkIndexするだけ。 大して難しいしくみでもない。
520 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 21:36:11 ] >>518 >>519 packageの件、ありがとうございました。開発が一段落するまではsourceでやってみます。
521 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 21:40:11 ] うむ。そうするがよい
522 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 13:33:42 ] >>519 (Tclのnamespaceが) >全然独特じゃないと思うけど・・・。 普通、よくあるnamespaceの使い方は宣言的なものが多いんだけど、 Tclのnamespaceはただのコマンドなので、実行文的な書き方になる。 namespace eval { } の中でnamespace export ... とか呼び出すのとか、かなり変に感じる。
523 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 14:23:14 ] 変に感じるのはそれだけじゃないだろう?(笑) 深く考えないのが吉。
524 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 20:25:51 ] >>521 審議中
525 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 20:38:09 ] >>522 それを言い出すとTclは制御文もコマンドだし・・・
526 名前:デフォルトの名無しさん [2009/09/22(火) 16:44:34 ] すいません。Perl質問スレでも書きましたが、 こちらのほうが適切そうだったので、こちらで質問させてもらいます。 Perl TkのTextウィジェットを使って 文字列の入出力をする方法はどのようにするのでしょうか? Entryウィジェットを使ったサンプルはWeb上から見つけたのですが、 Textウィジェットを用いたものはないもので。。。
527 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 18:09:24 ] >>526 Perl/Tkは触ったこと無いけど、 確かオライリーからまさにその本が出版されていたと思った。 それを購入するのが最終的には早いと思う。 日本でPerl/Tkは、ひどくマイナーだから。 あるいは、Ruby/Tkなら日本語の書籍が何冊か出版されているし、 Web/MLなどで情報の収集が容易だから、そちらに乗り換えるとか。 もちろんTcl/Tkでもオケー ゴメン、これくらいしかレスできねえヨ # いいレス返してあげておくれ > 他の住人さん達
528 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 07:29:32 ] Perl/Tkでググれ、としか
529 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 08:48:16 ] だな。一発でこんなん出たけど www.geocities.jp/m_hiroi/perl_tk/perltk07.html
530 名前:本田 [2009/09/23(水) 18:19:46 ] Mastering Perl/Tk oreilly.com/catalog/9781565927162 examples.oreilly.com/9781565927162/ examples.oreilly.com/9781565927162/mastperltk_examples.tar.gz mastperltk_examples.tar.gz の中にサンプルプログラム有り。
531 名前:本田 [2009/09/23(水) 18:23:42 ] Past, present and future of Tcl virtual filesystems Steve Huntley www.tcl.tk/community/tcl2007/papers/Stephen_Huntley/tcl2006_slides_huntley.pdf 。
532 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 19:10:25 ] >>530 一瞬、「サンプルプログラム祭り」に見えたw Tcl/TKはいつまで経ってもマイナー言語のままだから、 簡単にこんなことができますよーって紹介はもっとあってもいいと思うけどね。
533 名前:本田 mailto:sage [2009/09/23(水) 19:12:57 ] P2P A Metafile System over P2P File-sharing Network spa.jssst.or.jp/WIT/2005/papers/05013.pdf 。
534 名前:本田 mailto:sage [2009/09/23(水) 21:51:59 ] >>531 The FILTR: (File Inventory for Loading, Transfer and Recovery) filtr.sourceforge.net/ The FILTR is a program intended to be useful over the course of my lifetime. It combines the features of a backup utility, an archiving/version-control utility and a document management utility to create an effective and simple-to-use personal document management system. Author: Stephen Huntley (stephen.huntley@alum.mit.edu) License: Tcl license
535 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:04:56 ] 流れを読まずに質問ッス Text Widget で ・「文字単位」でTAB幅?TABインデント幅?を設定するにはどしたらええのん? ・一般的なエディタ(秀丸とかemacsとか)みたいなタブ文字でのインデントを実現できないのん? TAB幅4文字で書かれたCのソースを、Text widgetで表示して色々する作業用スクリプトを書いてる最中なんですが、 hogehoge(); // ほげほげ 的なコメントが、エディタ上ではインデントぴったりで綺麗に並んで書いてあるのに、Text Widgetではガタガタにずれて表示され 視認性がチョー悪く、作業効率も落ちるので、なんとかしたいのです TkのText Widgetは、デフォルトでTAB幅8文字、tabsオプションで指定はできる、 というところまでは判って、要はTAB幅4文字に変更できれば解決かなと思ったのですが… homepage3.nifty.com/kaku-chan/tcl_tk/chapter_230.html によると、「ピクセル」「mm」「inch」「cm」の4種類でしかtab stopsは設定できないと書いてあるし、 無理矢理ピクセルで指定してみても、TAB文字がそのまま「4文字相当の幅を常時取って」行の中に入ってしまうしで…
536 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 21:03:35 ] package require Tk text .txt -font {"MS Gothic" 12} button .b1 -text 4tab -command {settab 4} button .b2 -text 8tab -command {settab 8} pack .txt -side bottom pack .b1 .b2 -side left proc settab {n} { set font [.txt cget -font] .txt configure \ -tabstyle wordprocessor \ -tabs "[expr {$n * [font measure $font 0]}] left" } .txt insert 0.0 { 12345678901234567890123456789012345678901234567890 #include <stdio.h> int main(int argc, const char** argv) { printf(); return 0; } }
537 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 21:09:22 ] コピペ失敗した・・・前はタブは自動でスペースに置き換えてくれてた 木が刷るのにどういうことだ・・・・ package require Tk text .txt -font {"MS Gothic" 12} -tabstyle wordprocessor button .b1 -text 4tab -command {settab 4} button .b2 -text 8tab -command {settab 8} pack .txt -side bottom pack .b1 .b2 -side left proc settab {n} { set font [.txt cget -font] .txt configure -tabs "[expr {$n * [font measure $font 0]}] left" } .txt insert 0.0 { 12345678901234567890123456789012345678901234567890 #include <stdio.h> int main(int argc, const char** argv) { printf(); return 0; } }
538 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 10:00:31 ] >>536-537 ありがとうございます! 動かしてみたらたしかにTAB幅4文字っぽくなりました Tcl/Tkは全く詳しくないので自信がないですが、おそらく ・ -tabstyle wordprocessor 指定 ・ font measure でフォント1文字の横幅ドット数を取得 →TAB幅の文字数を掛けたピクセル数にして指定 が肝なのですかね… 実はTcl/TkじゃなくてPerl/Tkでスクリプトを書いてるんですが Tcl/Tkのtext widgetで実現できているなら Perl/Tkでも実現できるだろう…という前提で作業してみます
539 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 10:19:09 ] うーん… Perl/Tkには-tabstyleが実装されてないみたいですね… 指定すると「そんな指定は知らねえよ」とエラーが出る… cpansearch.perl.org/src/SREZIC/Tk-804.028_501/t/text.t ↑「XXX not yet implemented?」とか書いてあるし… www.tkdocs.com/tutorial/text.html ↑ここには、指定できる文字列としてtabstyleが書いてあるんだけどなあ… 勉強も兼ねてTcl/Tkで書き直してみるかな… それとも Python + Tkinter も試してみるか…
540 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:17:49 ] Tk使うならTclが一番安心だよね。やっぱり
541 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 21:12:37 ] Tcl/TkじゃなくてPerl/Tkの話だから スレ違いな気もしますが一応報告だけ * text widgetにtabstyleが実装されたのは8.0.5から、らしい * Perl/Tk(ActivePerl+Tk)は8.0.4相当。よって実装されてない * Perl/TkでもTkxを使えばtabstyleが使える(TkxはTcl/Tkのコア部分をそのまま使ってるそうで…) * Tkxを使うとパッと見でTcl/Tkそっくりの記述もできる(Tkx::text(".txt", ) * ActivePerlでTkxを使うとPARでexe化したときにActiveTclを要求されるので、exe化の意味なし * Perl+Tkxでfont measureをどう記述するかが謎 ←今ココ Tcl/Tkにも正規表現とハッシュ(連想配列)があるらしいから、書き直すのもアリかな… GUIの見た目も、Tcl/Tkのほうが綺麗だし
542 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 21:52:01 ] tkのデバッグってどうしてます? 10時間くらいで落ちたり、処理速度が低下します。
543 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 22:29:37 ] >>542 ??? tk4.2の頃は、そういうことあったけど…… 8.3以上では直ってるはずだと聞いてるお? ちなみに、 落ちると言っても、「tkが動かなくなる」だけ。 原因と対処法は自分で見つけた。もちろん、報告した。 処理速度の低下は、Xサーバーに問題があったので、ちょっと弄った。
544 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 23:38:25 ] 変数に入っている値が整数(として扱える)かどうか調べる方法はありますか。
545 名前:デフォルトの名無しさん [2009/10/02(金) 23:44:20 ] string is integer $x
546 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 23:31:56 ] >>545 やりたいことができた!他にも色々調べられるのね。ありがとうです(>_<)
547 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 18:16:08 ] >>545-546 まあその場合そのとおりなんだが、 Tcl/Tkの各コマンドのヘルプページはちょっと読みづらいよね。 PHPのヘルプ並みに使いやすく整備してくれるといいんだが……。
548 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 19:52:40 ] >>547 tclshでstring is って打つとコマンドの文法が出る。 string is a b って適当に打つと、クラスの一覧が ズラズラ表示される。これで十分。
549 名前:デフォルトの名無しさん [2009/10/27(火) 11:40:30 ] TCLスクリプトを自前アプリに実装したいのですが、 なにかお勧めの書籍(web)を紹介頂けませんか?
550 名前:デフォルトの名無しさん [2009/10/30(金) 17:03:22 ] c++builder6で下記コードを実行するとstdoutが見つからないというエラーが表示されます。 >>301 のログでTcl_SetStdChannel()で標準出力をトラップする見たいな事が記載されていますが、 どうやって行うのでしょうか? strcpy( buf, "puts \"TEST!!\""); Tcl_Eval( interp, buf ); エラーメッセージ:can not find channel named "stdout"
551 名前:本田 [2009/10/30(金) 22:58:47 ] >>549 C言語からTclを呼び出すには www.geocities.co.jp/SiliconValley/4137/dir4/namo.html
552 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 13:03:10 ] CでTclを使えるようにする Tcl_FindExecutable Tcl_Interp Tcl_Init Tkも使えるようにする(MainWindow破棄でTk_MainLoopから戻る) Tcl_FindExecutable Tcl_Interp Tcl_Init Tk_Init Tk_MainWindow ... Tk_MainLoop tclshみたいなプログラムにする(スクリプト終了でプログラム終了) Tcl_Main Tcl_AppInit中でコマンドの設定など wishみたいなプログラムにする(スクリプト終了でプログラム終了) Tk_Main Tcl_AppIniti中でコマンドの設定など 拡張DLL(shared library) dll名_Initという関数の中でコマンドの定義など
553 名前:デフォルトの名無しさん [2009/11/02(月) 17:30:39 ] >>551 ,552 有り難うございます。 なんとか実行できる様になってきました。 基本的な事をお聞きしたいのですが、 複数行に渡るコマンド(forやwhileなど)を実行するにはTcl_Eval()では駄目なのでしょうか? 以下の様なコマンドをTcl_Eval()で1行づつ実行すると(1)は実行されますが、 (3)は実行されません。 Tcl_EvalFile()でまとめて実行すると、(3)も10回実行しますが、 Tcl_EvalFile()は全部終わるまで戻ってこないので、 Tcl_Eval()で1行づつ実行したいのです。 (1)puts "TEST!!" (2)for { set i 0 } { $i<10 } { incr i } { (3) puts "I is $i" (4)}
554 名前:デフォルトの名無しさん [2009/11/02(月) 18:02:38 ] 553の続きです。 エラー処理を追加したらTcl_Eval()でエラーが発生して実行されていませんでした。 (2)→missing close-brace (3)→can't read "i": no such variable (4)→invalid command name "}" 試しに3行を1行にまとめたら実行できました。読みにくい・・・ for { set i 0 } { $i<10 } { incr i } { puts "I is $i" } やはり複数行のコマンドは実行できないのかな・・・
555 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 23:15:44 ] { } の中の改行は文の終わりと認識されず、改行文字を含む文字列と認識されます。 forは引数を4つとるコマンドです。 for {set i 0} {$i < $N} {incr i} { puts $i } は、たまたま第4引数が改行を含む文字列であるというだけのことです。
556 名前:デフォルトの名無しさん [2009/11/04(水) 10:50:05 ] >>555 有り難うございます。 >>改行文字を含む文字列と認識されます。 for文などは普通は見易くする為に>>553 の様に改行を入れて記述すると思います。 この様な記述をした場合には、第4引数が複数行になる為、 Tcl_Eval()を利用して1行づつ実行する事はできないという理解で良いですか?
557 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:53:58 ] >>556 というかC関数をTcl側に公開して、それをfor文で普通に呼び出せばいいんじゃね? そしたら何度も呼び出すこと考える必要ないでしょ。
558 名前:デフォルトの名無しさん [2009/11/04(水) 13:26:48 ] >>557 ありがとうございます。 >>C関数をTcl側に公開して これの方法が現時点では分かりませんが、これが出来ればいけそうな気がしてきました。 早速調べて試してみます。
559 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 20:18:53 ] >>556 見やすくするためではありません。 for文が第四の引数を解釈するに当たり、改行までをひとつのコマンドと引数列とみなして実行するためです。 よって{}中の改行は飾りではないです。
560 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 20:24:23 ] >>558 Tcl_CreateObjCommand 引数の解釈はTcl_GetIntFromObjなどを使う。 返値はTcl_SetObjResultで。 Tcl_CreateCommandなどのTclオブジェクトを扱わない形式では 数値やリストなど全部文字列に変換されて渡されるので、速度・精度の面で使わないこと。 (Tclオブジェクトだとリスト型やdouble型を保持したままやりとりする)
561 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 20:30:04 ] んで、ぶっちゃけ言うと Tcl_Eval(interp, "for {set i 0} {$i < 5} {incr i} {puts $i\nputs hogehoge}");
562 名前:デフォルトの名無しさん [2009/11/04(水) 23:17:21 ] >>559-561 色々有り難うございます。 とりあえず、Tcl_CreateCommand()を使用してTCLスクリプトからCの関数を実行し、 パラメータを渡す事まで確認できました。 TCLで実現したい事は、「とりあえず」は出来たと思います。 残りは戻値や速度面を考慮してTcl_CreateObjCommand()などを調べて見たいと思います。
563 名前:本田 [2009/11/21(土) 06:24:51 ] www.tcl.tk/ >Tcl/Tk 8.5.8 Nov 16, 2009
564 名前:デフォルトの名無しさん [2009/12/11(金) 19:14:03 ] Jaclてなんて発音すれば良いの?
565 名前:デフォルトの名無しさん [2009/12/11(金) 21:05:06 ] ジャッカル
566 名前:デフォルトの名無しさん [2009/12/16(水) 23:21:52 ] tclでhtmlを取り扱うウイジェット実装はいくつかあるみたいですが お勧めとか、デファクトスタンダードなものとか あるのでしょうか?
567 名前:本田 [2009/12/18(金) 00:55:20 ] >>566 >デファクトスタンダード incrtclだと思う。 incrtcl.sourceforge.net/iwidgets/iwidgets/scrolledhtml.html
568 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 02:07:53 ] 板違いかもしれないけれど Ruby/Tkで、 htmldoc = '<html>〜</html>' html = Tk::HTML_Widget.new.pack html.parse(htmldoc) とするとSegmentation faultが出るのは自分だけかな……。 TkHTML3、Tcl/Tk8.4、Ruby1.9.1環境です。
569 名前:デフォルトの名無しさん [2009/12/28(月) 17:45:58 ] 折角国際化されてるんだし だれかTcl/Tkでmigemo使えるようにしろよ〜
570 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 20:24:16 ] IMの制御がきちんとできるようにしてくれぇ。
571 名前:デフォルトの名無しさん [2009/12/29(火) 09:37:18 ] 結構この頃気に入っているのですが ckて使っている人いますか? なんか語りませんか
572 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 10:50:57 ] >> 571 大昔、CTk wiki.tcl.tk/5016 は使ったことがある。 ckも2001年頃から開発が止まっているみたいけど、8.5.8環境でもちゃんと動く?
573 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 20:43:14 ] Ckというのはwww.ch-werner.de/ck/ なのですが ページによると8.0-8.4が恐らくターゲットかと。うちでは8.0で動いています。 キャンバスなど対応しないウイジェットもあるので制限は多いですが、 Guiのプログラムとコンソールのプログラムが一つのプログラムでかけるのが 凄いです。(tcletも使えば一石三鳥?) CTKはどんな感じでしたか? Ckの場合難点はcursesを使う部分の日本語が上手く表示できないかんじです。 putsなど標準入出力ではOkですが。
574 名前:本田 [2010/01/05(火) 22:51:35 ] >Ckの場合難点はCkの場合難点はcursesを使う部分の日本語が上手く表示できないかんじです。 cursesってUNICODEに対応してないのかな?
575 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 23:26:35 ] ncursesw とかじゃん?
576 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 23:35:47 ] >>573 CTk使っていたのは日本語パッチ版が使いたくて8.0で粘っていたころなので、さすがに覚えていない。 当時はMulti-Byte文字を使えるcursesもほとんど無くて、日本語は最初から諦めていたと思う。 Multi-Byte文字はCkとcursesの2段階で対処が必要だと思うし、8.0だとそもそも多国語対応していない ような気がするので、tcl内部とcursesと実際の表示(xtermとか)のencodingを合わせないとだめだよね。 がんばってね。
577 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 15:28:42 ] アプリケーション拡張言語としてのTCLってどうして普及しなかったんですか?
578 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 15:34:43 ] >>577 いや〜、あんなもん、tkが付いてなかったら使いたくねえ!
579 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 15:39:50 ] >>577 tk以上の発明品が生まれなかったからじゃないかな。 結局Tcl/Tkが作られた当時はアプリのスクリプト言語をサポートするという発想が新しすぎたんだと思うよ。 後スクリプト言語としては文字列と整数のデータ型の区別がされてなくて微妙に使いにくいとか。 元々HTMLの埋込み言語として開発されたPHPが、発展してフレームワークが作られるようになると HTMLの生成がテンプレートエンジン越しになって本来の埋込スクリプトが全く使われなくなったりね。 開発当初の目的と実用される用途が一致しないのはよくあること。
580 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 22:27:44 ] ストールマンがTclの普及自体に横槍出したのもでかいんじゃないかな
581 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 00:46:35 ] >>577 GNUに嫌われたから
582 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 12:33:16 ] >>580 guileも全然普及してないな。
583 名前:デフォルトの名無しさん [2010/01/19(火) 21:15:09 ] GIMP は SIOD から TinyScheme に変わったんだよね。 Guile 哀れw
584 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 17:16:13 ] S-Langというのもあったけど。
585 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 23:03:23 ] TclはPythonに喰われちゃったんだと思う
586 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 10:09:59 ] 今ならさらにLuaもあるしな。
587 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 20:52:36 ] >>585 蛙と蛇だしな・・・
588 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 22:29:44 ] デスクトップマスコットを作ろうかと思っているのですが、 ウィンドウを透過させて、画像だけを表示させるようなことは tcl/tkでできるのでしょうか? 例えばこんな感じのを実現したいです ttp://cgi32.plala.or.jp/higpen/javatips/36.shtml OSXを使用しているので、 システム透過色を背景色に設定させるようにしてみましたが、 思い通りの結果になりません。(タイトルバーが表示されていたりします) package require Img pack [canvas .can -width 300 -height 300] image create photo foo -file circle.tif .can create image 0 0 -image foo -anchor nw wm attributes . -transparent 1 . configure -background systemTransparent .can configure -background systemTransparent
589 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 01:13:58 ] osxはよくわからんけど、wm overrideredirect . 1してみたらどうなる?
590 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 08:16:09 ] やってみましたが、 ウィンドウのサイズ、移動が出来なくなりますが、 タイトルバーは消えませんでした。
591 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:37:46 ] >>588 バージョンくらいかけよアホ。これでも読んでろ wiki.tcl.tk/13734
592 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:16:58 ] ActiveTcl 8.5.8.1を入れたら、Tkのtextで日本語入力するとwishが落ちるようになった。 text .t; pack .t -expand yes -fill both だけのプログラムでも再現する。 IMEで1バイト文字を選択して確定しても落ちるのでIME制御で何か壊しているみたい。 こんな時に限って旧のバックアップが無いので確認できないけど8.5.8は大丈夫と思う。 だれか8.5.8残している人。ください。
593 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:38:51 ] ほしゆ
594 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 02:28:47 ] C++/Tcl 凄いな。
595 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:05:28 ] >>594 ksk
596 名前:本田 [2010/03/17(水) 23:34:20 ] >>592 ActiveTcl8.5.8.0.291595-win32-ix86-threaded.exe
597 名前:592 mailto:sage [2010/03/18(木) 21:26:34 ] >>596 ActiveState ポリシー変えたらしくて、Community Edition(Free)は最新バージョンしか 入手できなくなってます。 しばらくはtclkitでしのぎます。
598 名前:本田 [2010/03/18(木) 22:48:35 ] >>597 ActiveTcl8.5.8.0.291595-win32-ix86-threaded.exe でgoogleれ。
599 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 22:54:45 ] 本田氏の本気を見た(いりこだし的な意味で)
600 名前:592 mailto:sage [2010/03/18(木) 23:39:47 ] >>598 それらしいURLを3つくらい見てダメだったので諦めていましたが、15番目で見つかりました。 どうもありがとう。
601 名前:デフォルトの名無しさん [2010/04/27(火) 22:17:26 ] perl tkでtxtウィジェット中に1秒間隔で 文字列を表示させることを考えていますがうまくいきません。 ソースは下になります。 何かおかしな点ありますでしょうか? ----- $window1 = MainWindow->new(); $frame1 = $window1->Frame()->pack(); $output = $frame1->Scrolled('Text')->pack(-expand=>1, -fill=>'both'); for($cnt=0; $cnt<1000; $cnt++){ $output_tmp = "$cnt" . "\n"; $output->insert("end", $output_tmp); $output_tmp = ""; sleep(1); } MainLoop(); -----
602 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 23:35:32 ] perl tkは知らんけどtcl/tkで定期的に処理を実行する時はafterコマンドを使う リファレンスマニュアルとか調べてみ
603 名前:デフォルトの名無しさん [2010/04/28(水) 06:29:41 ] どううまくいかないのかを書きなさい。
604 名前:デフォルトの名無しさん [2010/04/29(木) 06:13:30 ] >>602 ありがとうございます。ちょっと調べてみます。 >>603 上記ソースの場合、立ち上がりすらしない。 sleepをコメントアウトしたら1行づつ出力されずに、 溜め込んだ情報を一気に吐き出すといった感じです。
605 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:45:57 ] >>601 描画はevent loop(MainLoop)で実行されると思うので、MainLoopの前でsleepしたら 描画出来ないと思う。 ループを切り出して、適当なeventを契機に呼ばれるようにすれば良いと思う。 どうしても今のループにしたければ、updateすると動くかもしれない。
606 名前:デフォルトの名無しさん [2010/04/29(木) 21:57:57 ] >>605 updateでできました! ありがとうございました_( . _ . )_
607 名前:デフォルトの名無しさん [2010/04/29(木) 23:30:28 ] テクルトックで読み方あってる_
608 名前:デフォルトの名無しさん [2010/04/29(木) 23:36:58 ] 何度もすいません。 >>601 の修正版で、 常に最新出力行が確認できるようににしたい (現状、テキストボックスが画面出力に追従しない。。。) のですが、何かうまい方法ってあるんでしょうか? 調べてみたんですけど、うまいこといかなくて。。。 ----- use Tk; $window1 = MainWindow->new(); $frame1 = $window1->Frame()->pack(); $output = $frame1->Scrolled('Text', -scrollbars=>'se')->pack(-expand=>1, -fill=>'both'); for($cnt=0; $cnt<1000; $cnt++){ $output_tmp = "$cnt" . "\n"; $output->insert("end", $output_tmp); $output_tmp = ""; $window1->update(); } MainLoop(); -----
609 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:40:15 ] >608 君はイベント駆動モデルという物を全く理解していない。 >描画はevent loop(MainLoop)で実行されると思うので、MainLoopの前でsleepしたら とも、 >ループを切り出して、適当なeventを契機に呼ばれるようにすれば良いと思う。 とも言われてるだろ? 画面描画とかは MainLoop() の中で発生してるんだってば。 その前のループの所の処理は既に終わっちゃってるの。 $window1 = MainWindow->new(); $frame1 = $window1->Frame()->pack(); $output = $frame1->Scrolled('Text', -scrollbars=>'se')->pack(-expand=>1, -fill=>'both'); $cnt = 0; $output->repeat(1000, sub { # ここの処理が 1 秒単位で毎回呼び出される $output->insert("end", "$cnt\n"); ++$cnt; }); MainLoop();
610 名前:本田 [2010/05/02(日) 23:45:07 ] >>608 Tk Documentation Table of Contents www-users.cs.umn.edu/~amundson/perl/perltk/toc.html fileevent Execute a callback when a file becomes readable or writable www-users.cs.umn.edu/~amundson/perl/perltk/fileevent.htm after Execute a command after a time delay www-users.cs.umn.edu/~amundson/perl/perltk/after.htm tkwait Wait for variable to change or window to be destroyed www-users.cs.umn.edu/~amundson/perl/perltk/tkwait.htm IO high level interface to Tk's 'fileevent' mechanism www-users.cs.umn.edu/~amundson/perl/perltk/Tk%3A%3AIO.htm TK/AFTER support class for Tk::Widget::after www-users.cs.umn.edu/~amundson/perl/perltk/Tk%3A%3AAfter.htm
611 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 01:36:11 ] >>608 package require Tk pack [text .t] -side bottom -fill both -expand 1 pack [button .start -text Start] -side left .start configure -command {RunCount 100} proc RunCount {n} { for {set i 1} {$i <= $n} {incr i} { .t insert end $i\r\n update .t see end after 200 } tk_messageBox -message "End!!" } Tcl/Tkで書いたから適当にPerlに脳内変換して