●●●●TCL/TKなら俺に聞け 4●●●●
いやTcl/Tkは「馬鹿でも使える」ように設計されてるだろ とマジレス ActiveTcl 8.6.8出てる。 wiki.tcl.tk が wiki.tcl-lang.org になってるみたいだけど、アナウンスか何かあった? 見た目は変わってる。内容は以前の wiki.tcl.tk から移行みたい。(確証無) wiki.tcl.tk を開くと wiki.tcl-lang.org に転送されたわ .tk は過疎るとドメインごと消えるときあるから移行してくれて安心 へえ。 tcl.tkとtcl-lang.orgはほぼ同一ページだが飛ばされはしないな。 Tcl/Tkにすべてをかけて玉砕したビットウォークという会社があってだな Tcl/Tk による I18N(国際化) プログラミングの試み http://www.yk.rim.or.jp/ ~kawagisi/i18n-tcltk-programing.html あの新しい情報と古い情報とサンプルコードと議論とコメントとリンク切れリンクなんでもごちゃまぜバームクーヘンみたいになってるwikiを整理したらもうちょっと人気が出るんじゃないの skd.kitをunwrapしてできた skd.vfs\doc\skd.tkd を読みたいのですが doc\〜.tkd を読むソフトと方法とかってどなたかご存知ですか Tkの趣旨に反するけど Tk-GTK+とかTk-Metroみたいに各種OSのツールキットライブラリと動的リンクして 同じプログラムでもそれが実行されたプラットフォームのUIに合わせられたらかっこいいかもね GNU/Linuxでの透過ウィンドウやWindows 10のフラットテーマとかと協調できたらモチベーションも上がるし。 tclにはこのまま廃れてロストテクノロジーとして10年後くらいに発掘されてほしいわ マジでQZってなんだ?検索してもソフトウェア開発のWebページしかそれっぽい情報がねえw >>303 Swingじゃなくて、AWTとかSWTだな。 ビットウォークの名前が過去ログの2から消えてる 過去のレガシーがまったく受け継がれてないわけだ 本田が2003年からいてワロタ Python3.7でTKinterを試したところHiDPI環境では 低解像度のものが拡大されて表示されてしまうようです。 >>> import tkinter >>> tkinter.TkVersion としたところ8.6でした。 HiDPI環境で拡大表示ではなく、 大きいサイズのフォントで適切に表示する方法はないのでしょうか? >>314 求めている回答ではないかも知れませんが、 tk scalingコマンドでスケーリングを変更できるようになっています。 Windows上でwishを起動して以下のコマンドを実行したところ 1.0と3.0では、フォントの大きさに違いがでることを確認できました。 (Tcl-Tk) 1 % tk scaling 1.3333333333333333 (Tcl-Tk) 2 % tk scaling 1.0 (Tcl-Tk) 3 % label .l0 -text "Hello!" .l0 (Tcl-Tk) 4 % pack .l0 (Tcl-Tk) 5 % TKinterは使った事がないですが、こんな感じですかね? root = Tk()kisxe root.tk.call('tk', 'scaling', 2.0)」 標準(72 dpiモニターに相当)の1.0倍に変更してフォントサイズで指定 するようにしてみてはどうでしょうか? >>316 返信有難うございます。 英語があまり得意ではないのですがTclTKはHiDPIに対応してないみたいですね。 tk scalingも試してみたのですがスケーリングを2倍にすると表示も二倍になってしまいました(^_^;) ちょっとややこしいですが、 ・Windowsのスケーリングを二倍 ・Tkのスケーリングを1倍 ・フォントサイズを10 という感じにすると フォントサイズが20になってくれればくっきり表示されるのですが フォントサイズ10の文字が二倍に拡大されて表示される、という状態です。 Tkのスケーリングを0.5倍にして、フォントサイズを20を直に指定して表示できるか試してみましたが 1.0以下は指定できないみたいで駄目でした。 GTKに入門してみたいと思います。 すみません解決しました。 python.exeを右クリック→互換性タブ→HiDPI設定をいじる tkinterの話だから変だとは思ってたが pythonの話かよ まじ死ねや すぐりふひとはtcl/tkから離れて幸せになれたのに本田と来たら・・・ tcltkで書いたものとtkinterで書いたものを比べたら 速度はtcltkの方が若干勝ってるんだけど tkinterで書いたものの方がスクロールはスムーズだったのと 大量にgrid入れたscrollableFrameのスクロールだと tkinterの方がヌルヌル動いたのでtkinterの勝ち tclは永遠に不滅ですか 少なくとも向こう10年くらいはメインストリームですか あのwindowsもtclで書かれているくらいだからな! python+tkinterで用が足りるのでtclは要らない子 tcl/tkはRを使ったデスクトップアプリを作るときに重宝する デスクトップアプリにこだわらずにshinyでwebアプリ作ればいいじゃんと言われれば返す言葉がないが set s [format "%d %d %d" 1 2 3] とかを set lst [list 1 2 3] から set s [format "%d %d %d" lst] あるいは set s [format "%d %d %d" *lst] みたいに書くことは出来ますか? 後者二つともエラーになるので あるとしたら正しい書き方は何ですか? 何がやりたいの? lstの要素が1、2、3で変数sの値を文字列"1 2 3"にしたいなら下のでいいけど set s $lst set s [format "%03d %03d %03d" $lst] みたいなのでもうまくいかないんです integer指定してるのに文字列食わしてるからじゃん set lst [list [expr 1] [expr 2] [expr 3]] set s [format "%03d %03d %03d" $lst] これでもダメでした>< tclでは全ての変数が文字列なんだからそりゃそうなる 数値1をリストlstに格納するときに数値1は文字列1に変換される set lst [list 1 2 3] set s [format "%03d %03d %03d" [lindex $lst 0] [lindex $lst 1] [lindex $lst 2]] これならエラーにならないんですが面倒なので もっと良い方法ありませんか? あと 335 さんの主張する仕様だと [lindex $lst 0] は文字列なので 333 さんの話と矛盾してる気がしますがどういうことでしょう 数値に変換できるときは勝手に変換してくれるんだね知らなかった 見当違いなこと言ってごめん なんとなくこれで行ける気もしたのでやってみたのですが set s [format "%03d %03d %03d" [list $lst]] だめでした>< もう一息な気がするのであきらめつかずモヤモヤしています 代行レスはここへ https://rosie.5ch.net/test/read.cgi/operatex/1549681970/160 160 名前: [Φ|(|´|Д|`|)|Φ] BBxed!! 臨時で名無しです[] 投稿日:2019/02/16(土) 13:42:57.64 お手数ですがよろしくお願いします。 【板名】プログラム技術 【スレ名】●●●●TCL/TKなら俺に聞け 4●●●● 【スレのURL】https://mevius.5ch.net/test/read.cgi/tech/1375678740/l50 【名前欄】代行経由 【メール欄】sage 【本文】↓ >>330 330さんが考えているような書き方は出来ないと思われる。 Tclのリストは空白区切りの単なる文字列です。 list 1 2 3 は3つの要素のリストを生成するが、 "1 2 3" という1つの文字列という扱いです。 よって、set s [format "%d %d %d" $lst] とすると、 set s [format "%d %d %d" "1 2 3"] のように置き換えられます。 求めている回答ではないかも知れませんが、ひと手間かけて以下 のようなことはできます。 リストの各要素をそれぞれ分離して別々の変数にするには、 lassignコマンドを使います。 set lst [list 1 2 3] lassign $lst x y z set s [format "%d %d %d" $x $y $z] これでどうでしょうか。 set lst [list 1 2 3] set s [eval "format {%02d %02d %02d} $lst"] これでいけました ほんとうにありがとうございました >>330 set s [format "%d %d %d" {*}[list 1 2 3] ] set lst [list 1 2 3] set s [format {%02d %02d %02d} {*}$lst] これでもいけました ほんとうにありがとうございました >>344 この書き方初めて見た いつもforeachで回してたけどこういう書き方もできるんだね んー expand でも検索したつもりだったのになー http://www.geocities.co.jp/SiliconValley/4137/dir1/tcltkevolution85.html >なお、{*}は、8.5がαリリースだったときには{expand}というトークンでして、 >このページにも長くそのように書いていましたが、 正式リリースに伴って{*}と変更されました。 >>324 OSと、tcl/tk, Python/Tkinter それぞれのバージョンと、バイナリパッケージでインストールしたなら、 パッケージの入手元は? >>328 tcl皆無にするなら、tkinterも動かないんわけだけど >>345 ver8.4迄はリストをバラして個別に適用するには、evalを使うのが"正統的裏技"だったがver8.5から{*}が導入されマニュアル8.6版のevalの項目ではこちらの使用が推奨されている。 ver8.6のマニュアルでは、eval,info,Tclの項目に小分けして{*}の説明が少しだけある。 同じ動作をさせてるつもりなのですが ぬるぬる感が明らかに違うので tkinter + tix https://ideone.com/0fB1OD Tcl/Tk + BWidget https://ideone.com/dpBcd3 違うものを比べてると言われればそうなのかも知れません >>349 *$lst じゃなくて {*}$lst って書かないといけないのは 文法仕様上前者が無理だったということかな 前者が実現出来ない理由が良く判らない >>351 多くの言語で、ポインタの内容を *str_pp の様に記す習慣がある。 紛らわしくないように "*" ではなく "{*}" を使用したのかも、単なる趣味かも、判りません 単なる変数展開と個々の引数としての展開では大きく違うからあえて冗長な書き方をすることでパッと見で両者の区別がつくようにしてるんじゃないかな >>354 やりたいことをもう少し具体的に…(やっぱり難しくてお手上げかもしれないが) >>332 set s [format "%03d %03d %03d" {*}$lst] [PDF]Catenation and Operand Specialization For Tcl Virtual Machine http://www.eecg.utoronto.ca/ ~tsa/theses/benjamin_vitale.pdf [PDF]Alternative dispatch techniques for the Tcl VM Interpreter http://www.cs.toronto.edu/ ~bv/tcl2005/tcl2005-vitale-zaleski.pdf [PDF]Alternative Dispatch Techniques for the Tcl VM http://www.cs.toronto.edu/ ~bv/tcl2005/tcl2005-slides.pdf tkinter の話で申し訳ないのですが、 tcltk側の関数が返してくる tcl形式リスト(文字列)をpython 形式のリストに変換するにはどうしたらいいのでしょうか? >>> import tkinter >>> root = tkinter.Tk() >>> root.tk.eval("package require math::fourier") '1.0.2' >>> root.tk.eval("math::fourier::dft %s" % tkinter._stringify([1, 2, 3]) ) '{6.0 0.0} {-1.499999999999999 0.8660254037844388} {-1.499999999999999 -0.8660254037844388}' math::fourier::dft (離散フーリエ変換) を例として取り上げました。 tkinter._stringify は丁度よくpython形式のリストを整形してくれます。 [1, 2, 3 ] → { 1 2 3 } ですが、その逆が分かりません。 解決しました。 eval を使わず、call を使えということですね。 >>> root.tk.call("math::fourier::dft", [1, 2, 3] ) ((6.0, 0.0), (-1.499999999999999, 0.8660254037844388), (-1.499999999999999, -0.8660254037844388)) よくみろ それは list じゃなくて tuple だ >>> list(map(list, root.tk.call("math::fourier::dft", [1, 2, 3]) )) [[6.0, 0.0], [-1.499999999999999, 0.8660254037844388], [-1.499999999999999, -0.8660254037844388]] できますた ActiveTcl 8.6 インストール場所変更する方法ありますか exe直接実行せずに 7zipとかで中身ほじりながら 自分で展開して必要なものだけ配置 あとは環境変数でOK >>371 370です。有難うございます。 windows7 ではインストール箇所固定で変更できませんでしたが、何故かwindows8.1ではあっさり指定可能でした。 狐につままれた気がします。 Next Scripting Framework https://next-scripting.org/xowiki/ NX is a highly flexible, Tcl-based, object-oriented scripting language. It is a descendant of XOTcl and was designed based on 10 years of experience with XOTcl in projects containing several hundred thousand lines of code. While XOTcl was the first language designed to provide language support for design patterns and to provide a highly dynamic programming environment, the Next Scripting Framework (NSF) and NX add to these features support for language-oriented programming. A Tcl -Tk Form Generator that can be used alone or used to provide a fast Form generation for language in which this activity can be complex https://www.codeproject.com/Articles/5247314/A-TCL-TK-Form-Generator https://sourceforge.net/projects/tcl/files/Tcl/8.6.10/ 2019-10-04 一年ぶりの更新。未だ配布候補版です。 Tcl Source CodeTimelineを見ると10/1の日付のこれが完成を意味したのかね? 2019-10-01 21:38 (hopefuly) fix build M.Hiroi氏のtcltkのページまさかの現在更新中? マイブームなのかな Hiroi氏のサイト、tcltk以外の言語も分かり易く要点がまとまってるので昔からお世話になってます。 8月から実用編ががっつり増えてるのな。 tailcall なんてのが使えるようになってたんだな。知らなかったよ。 385 です 少し慌てました。 正式な予告は次の様です。もうすぐのようです。 Tcl/Tk 8.6.10 Release Announcement November 21, 2019 Tk improvements on Mac OSX (including Catalina) / Aqua - internationalized text entry with IME とあったので試してみた。(macOS Sierra 10.12.6) ・tcl/tk 8.5.9 (macに標準インストール済 ) text widget/entry widget で IMEが機能しない。 よそからのペーストは可能 (一部カラー絵文字はペーストもできない) ・tcl/tk 8.6.9 (homebrewパッケージで導入) IME で入力中の文字が表示されない。文節毎の変換候補のボックスは表示される。 カラー絵文字ペーストでクラッシュしました. . . ・tcl/tk 8.6.10 (ソースからコンパイル ) IMEとの連携はそれなりにできているようです。 ただし [カラー絵文字] 直後の入力が制御不能になりやすく、まだ不安定です。 それほど [カラー絵文字] を入力したい!ってワケではないけど指標にはなるでしょう。 もうちょっと頑張って欲しいですね。 少しずつ進化してるのは嬉しいです。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる