X



●●●●TCL/TKなら俺に聞け 4●●●●
0001デフォルトの名無しさん
垢版 |
2013/08/05(月) NY:AN:NY.AN
各種 wrapper でtkってるひとはいても
生で使ってるひとはほとんど居ない希ガス

【英語サイト】
プロジェクト本拠地
http://tcl.sourceforge.net/
最新版ソースコード
ftp://ftp.tcl.tk/pub/tcl/nightly-cvs/
The Tcler's Wiki
http://wiki.tcl.tk/
The comp.lang.tcl Newsgroup
http://groups.google.com/group/comp.lang.tcl/
ActiveTcl
http://www.activestate.com/products/activetcl/
【日本語サイト】
もっとTcl/Tk
http://www.interq.or.jp/japan/s-imai/tcltk/
Tcl/Tk Scripting Laboratory
http://www.geocities.jp/urano343/tcltk.html
Tcl/Tk Primer
http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/tcltk_primer/ ← 応答なし
Tcl 8.4.1 Manual Command Reference
http://www.freesoftnet.co.jp/tclkits/doc/TclCmdRef/tcl_contents_jp.htm
CategoryTclTk - mynote
http://reddog.s35.xrea.com/wiki/CategoryTclTk.html
【前スレ】
●●●●TCL/TKなら俺に聞け 3●●●●
http://toro.2ch.net/test/read.cgi/tech/1374052935/
●●●●TCL/TKなら俺に聞け 2●●●●
http://toro.2ch.net/test/read.cgi/tech/1177998764/
●●●●TCL/TKなら俺に聞け●●●●
http://pc11.2ch.net/test/read.cgi/tech/1033628416/
0297デフォルトの名無しさん
垢版 |
2018/11/04(日) 13:43:34.41ID:5RY1Lh2I
20年も前の記事出されてもな
0298デフォルトの名無しさん
垢版 |
2018/11/08(木) 22:40:39.96ID:BG7B4Ci4
あの新しい情報と古い情報とサンプルコードと議論とコメントとリンク切れリンクなんでもごちゃまぜバームクーヘンみたいになってるwikiを整理したらもうちょっと人気が出るんじゃないの
0300デフォルトの名無しさん
垢版 |
2018/11/13(火) 12:27:28.81ID:RJ8agy/H
skd.kitをunwrapしてできた skd.vfs\doc\skd.tkd を読みたいのですが
doc\〜.tkd を読むソフトと方法とかってどなたかご存知ですか
0301デフォルトの名無しさん
垢版 |
2018/11/24(土) 20:40:04.25ID:I8hvszb0
Tkの趣旨に反するけど
Tk-GTK+とかTk-Metroみたいに各種OSのツールキットライブラリと動的リンクして
同じプログラムでもそれが実行されたプラットフォームのUIに合わせられたらかっこいいかもね
GNU/Linuxでの透過ウィンドウやWindows 10のフラットテーマとかと協調できたらモチベーションも上がるし。
0302デフォルトの名無しさん
垢版 |
2018/11/25(日) 17:26:57.59ID:arFqKMW0
無駄に無駄を重ねる無駄な努力
0304デフォルトの名無しさん
垢版 |
2018/11/25(日) 18:28:01.28ID:arFqKMW0
QZはええわ
0306デフォルトの名無しさん
垢版 |
2018/12/04(火) 09:56:05.14ID:euG8Im7Y
どこまでいってもQZ
0307デフォルトの名無しさん
垢版 |
2018/12/04(火) 20:59:04.75ID:8pLatLNm
tclにはこのまま廃れてロストテクノロジーとして10年後くらいに発掘されてほしいわ
0308デフォルトの名無しさん
垢版 |
2018/12/05(水) 13:20:53.69ID:2sSegHBZ
matplotlibが現役最後か
0309デフォルトの名無しさん
垢版 |
2018/12/08(土) 18:47:21.78ID:hIfZgykd
マジでQZってなんだ?検索してもソフトウェア開発のWebページしかそれっぽい情報がねえw
0311デフォルトの名無しさん
垢版 |
2018/12/09(日) 14:47:56.62ID:rgDJoSoN
0312デフォルトの名無しさん
垢版 |
2018/12/09(日) 18:17:12.25ID:OYBInM51
>>303
Swingじゃなくて、AWTとかSWTだな。
0313デフォルトの名無しさん
垢版 |
2018/12/15(土) 02:13:48.68ID:VzUt8Mhi
ビットウォークの名前が過去ログの2から消えてる
過去のレガシーがまったく受け継がれてないわけだ
本田が2003年からいてワロタ
0314デフォルトの名無しさん
垢版 |
2019/01/16(水) 23:54:12.45ID:OcKWB7fI
Python3.7でTKinterを試したところHiDPI環境では
低解像度のものが拡大されて表示されてしまうようです。

>>> import tkinter
>>> tkinter.TkVersion
としたところ8.6でした。

HiDPI環境で拡大表示ではなく、
大きいサイズのフォントで適切に表示する方法はないのでしょうか?
0315デフォルトの名無しさん
垢版 |
2019/01/17(木) 13:44:19.00ID:DbtLCT5r
おま環
0316規制中のため代行
垢版 |
2019/01/17(木) 17:17:14.38ID:1e9ITwyO
>>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倍に変更してフォントサイズで指定
するようにしてみてはどうでしょうか?
0317314
垢版 |
2019/01/17(木) 20:06:27.87ID:XV1+qWbe
>>316
返信有難うございます。
英語があまり得意ではないのですがTclTKはHiDPIに対応してないみたいですね。
tk scalingも試してみたのですがスケーリングを2倍にすると表示も二倍になってしまいました(^_^;)

ちょっとややこしいですが、

・Windowsのスケーリングを二倍
・Tkのスケーリングを1倍
・フォントサイズを10

という感じにすると
フォントサイズが20になってくれればくっきり表示されるのですが
フォントサイズ10の文字が二倍に拡大されて表示される、という状態です。
Tkのスケーリングを0.5倍にして、フォントサイズを20を直に指定して表示できるか試してみましたが
1.0以下は指定できないみたいで駄目でした。
GTKに入門してみたいと思います。
0318314
垢版 |
2019/01/17(木) 20:20:37.78ID:XV1+qWbe
すみません解決しました。
python.exeを右クリック→互換性タブ→HiDPI設定をいじる
0319デフォルトの名無しさん
垢版 |
2019/01/17(木) 20:44:57.02ID:qOv+RZ4q
tkinterの話だから変だとは思ってたが
pythonの話かよ
まじ死ねや
0322デフォルトの名無しさん
垢版 |
2019/01/18(金) 04:10:42.36ID:6U5tZjv3
ほらね
おま環だろ?
0323デフォルトの名無しさん
垢版 |
2019/01/25(金) 09:37:29.34ID:nTExwXep
PythonってもしかしてTcl/Tkの拡張?
0324デフォルトの名無しさん
垢版 |
2019/02/06(水) 10:34:34.39ID:+qagyc5o
tcltkで書いたものとtkinterで書いたものを比べたら
速度はtcltkの方が若干勝ってるんだけど
tkinterで書いたものの方がスクロールはスムーズだったのと
大量にgrid入れたscrollableFrameのスクロールだと
tkinterの方がヌルヌル動いたのでtkinterの勝ち
0326デフォルトの名無しさん
垢版 |
2019/02/07(木) 18:31:50.76ID:Zm0kP7hd
tclは永遠に不滅ですか
少なくとも向こう10年くらいはメインストリームですか
0328デフォルトの名無しさん
垢版 |
2019/02/09(土) 13:36:15.73ID:6aHCNF5r
python+tkinterで用が足りるのでtclは要らない子
0329デフォルトの名無しさん
垢版 |
2019/02/14(木) 21:12:49.74ID:QKLtUgZm
tcl/tkはRを使ったデスクトップアプリを作るときに重宝する
デスクトップアプリにこだわらずにshinyでwebアプリ作ればいいじゃんと言われれば返す言葉がないが
0330デフォルトの名無しさん
垢版 |
2019/02/16(土) 11:09:08.07ID:lF7O1vpr
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]

みたいに書くことは出来ますか?
後者二つともエラーになるので
あるとしたら正しい書き方は何ですか?
0331デフォルトの名無しさん
垢版 |
2019/02/16(土) 12:37:52.60ID:8dsmpsXe
何がやりたいの?
lstの要素が1、2、3で変数sの値を文字列"1 2 3"にしたいなら下のでいいけど
set s $lst
0332デフォルトの名無しさん
垢版 |
2019/02/16(土) 12:43:44.55ID:lF7O1vpr
set s [format "%03d %03d %03d" $lst]
みたいなのでもうまくいかないんです
0333デフォルトの名無しさん
垢版 |
2019/02/16(土) 12:51:28.30ID:8dsmpsXe
integer指定してるのに文字列食わしてるからじゃん
0334デフォルトの名無しさん
垢版 |
2019/02/16(土) 12:57:13.00ID:lF7O1vpr
set lst [list [expr 1] [expr 2] [expr 3]]
set s [format "%03d %03d %03d" $lst]

これでもダメでした><
0335デフォルトの名無しさん
垢版 |
2019/02/16(土) 13:09:24.14ID:8dsmpsXe
tclでは全ての変数が文字列なんだからそりゃそうなる
数値1をリストlstに格納するときに数値1は文字列1に変換される
0336デフォルトの名無しさん
垢版 |
2019/02/16(土) 13:12:18.28ID:lF7O1vpr
set lst [list 1 2 3]
set s [format "%03d %03d %03d" [lindex $lst 0] [lindex $lst 1] [lindex $lst 2]]

これならエラーにならないんですが面倒なので
もっと良い方法ありませんか?
0337デフォルトの名無しさん
垢版 |
2019/02/16(土) 13:16:17.38ID:lF7O1vpr
あと 335 さんの主張する仕様だと [lindex $lst 0] は文字列なので
333 さんの話と矛盾してる気がしますがどういうことでしょう
0338デフォルトの名無しさん
垢版 |
2019/02/16(土) 13:21:28.18ID:8dsmpsXe
数値に変換できるときは勝手に変換してくれるんだね知らなかった
見当違いなこと言ってごめん
0339デフォルトの名無しさん
垢版 |
2019/02/16(土) 13:25:32.89ID:lF7O1vpr
なんとなくこれで行ける気もしたのでやってみたのですが

set s [format "%03d %03d %03d" [list $lst]]

だめでした><
もう一息な気がするのであきらめつかずモヤモヤしています
0340デフォルトの名無しさん
垢版 |
2019/02/16(土) 15:44:33.35ID:O+uQ3VIp
代行レスはここへ
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]

これでどうでしょうか。
0341デフォルトの名無しさん
垢版 |
2019/02/16(土) 16:20:43.87ID:STqQL4YT
set lst [list 1 2 3]
set s [eval "format {%02d %02d %02d} $lst"]

これでいけました
ほんとうにありがとうございました
0342デフォルトの名無しさん
垢版 |
2019/02/16(土) 16:35:31.07ID:AfCn0+WA
>>330
set s [format "%d %d %d" {*}[list 1 2 3] ]
0344デフォルトの名無しさん
垢版 |
2019/02/16(土) 16:52:58.14ID:STqQL4YT
set lst [list 1 2 3]
set s [format {%02d %02d %02d} {*}$lst]

これでもいけました
ほんとうにありがとうございました
0345デフォルトの名無しさん
垢版 |
2019/02/16(土) 17:07:55.05ID:8dsmpsXe
>>344
この書き方初めて見た
いつもforeachで回してたけどこういう書き方もできるんだね
0346デフォルトの名無しさん
垢版 |
2019/02/16(土) 17:11:56.78ID:STqQL4YT
んー expand でも検索したつもりだったのになー

http://www.geocities.co.jp/SiliconValley/4137/dir1/tcltkevolution85.html
>なお、{*}は、8.5がαリリースだったときには{expand}というトークンでして、
>このページにも長くそのように書いていましたが、 正式リリースに伴って{*}と変更されました。
0348デフォルトの名無しさん
垢版 |
2019/02/16(土) 19:34:26.00ID:kXtbvz/w
>>324
OSと、tcl/tk, Python/Tkinter それぞれのバージョンと、バイナリパッケージでインストールしたなら、
パッケージの入手元は?

>>328
tcl皆無にするなら、tkinterも動かないんわけだけど
0349デフォルトの名無しさん
垢版 |
2019/02/16(土) 22:13:00.74ID:WrrsgfdN
>>345
ver8.4迄はリストをバラして個別に適用するには、evalを使うのが"正統的裏技"だったがver8.5から{*}が導入されマニュアル8.6版のevalの項目ではこちらの使用が推奨されている。
ver8.6のマニュアルでは、eval,info,Tclの項目に小分けして{*}の説明が少しだけある。
0350デフォルトの名無しさん
垢版 |
2019/02/17(日) 11:27:32.85ID:7mUUrd8D
同じ動作をさせてるつもりなのですが
ぬるぬる感が明らかに違うので

tkinter + tix
https://ideone.com/0fB1OD

Tcl/Tk + BWidget
https://ideone.com/dpBcd3

違うものを比べてると言われればそうなのかも知れません
0351デフォルトの名無しさん
垢版 |
2019/02/17(日) 11:34:57.16ID:7MWZQWrl
>>349
*$lst じゃなくて {*}$lst って書かないといけないのは

文法仕様上前者が無理だったということかな
前者が実現出来ない理由が良く判らない
0352デフォルトの名無しさん
垢版 |
2019/02/17(日) 17:33:15.98ID:MVql6Ciy
>>351
多くの言語で、ポインタの内容を *str_pp の様に記す習慣がある。
紛らわしくないように "*" ではなく "{*}" を使用したのかも、単なる趣味かも、判りません
0353デフォルトの名無しさん
垢版 |
2019/02/18(月) 10:22:49.56ID:jrTRVIL4
単なる変数展開と個々の引数としての展開では大きく違うからあえて冗長な書き方をすることでパッと見で両者の区別がつくようにしてるんじゃないかな
0354デフォルトの名無しさん
垢版 |
2019/02/18(月) 15:25:56.92ID:bbNHvPxv
lassign で型限定する方法ない?
0355デフォルトの名無しさん
垢版 |
2019/02/23(土) 22:18:41.43ID:05po+dKO
>>354
やりたいことをもう少し具体的に…(やっぱり難しくてお手上げかもしれないが)
0358デフォルトの名無しさん
垢版 |
2019/03/10(日) 15:03:39.13ID:uFsYqTSV
>>344
0361デフォルトの名無しさん
垢版 |
2019/04/19(金) 08:27:51.90ID:K+Fou2p2
Tcl/Tkだろ!ボケ!
0365デフォルトの名無しさん
垢版 |
2019/06/24(月) 19:46:44.99ID:c6qVqrI9
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 }
ですが、その逆が分かりません。
0366デフォルトの名無しさん
垢版 |
2019/06/25(火) 13:56:27.93ID:pO4dP3rM
解決しました。 eval を使わず、call を使えということですね。
>>> root.tk.call("math::fourier::dft", [1, 2, 3] )
((6.0, 0.0), (-1.499999999999999, 0.8660254037844388), (-1.499999999999999, -0.8660254037844388))
0367デフォルトの名無しさん
垢版 |
2019/06/25(火) 17:08:51.27ID:XhZtJiMw
よくみろ
それは list じゃなくて tuple だ
0368デフォルトの名無しさん
垢版 |
2019/06/25(火) 19:41:06.33ID:pO4dP3rM
>>> list(map(list, root.tk.call("math::fourier::dft", [1, 2, 3]) ))
[[6.0, 0.0], [-1.499999999999999, 0.8660254037844388], [-1.499999999999999, -0.8660254037844388]]

できますた
0369デフォルトの名無しさん
垢版 |
2019/06/26(水) 10:48:27.21ID:7Ob4FOl6
pythonならnumpyのdft使う方が速くね
0370デフォルトの名無しさん
垢版 |
2019/07/19(金) 08:31:00.01ID:Xk8EeMov
ActiveTcl 8.6 インストール場所変更する方法ありますか
0371デフォルトの名無しさん
垢版 |
2019/07/20(土) 13:40:22.94ID:1y0e4GF6
exe直接実行せずに
7zipとかで中身ほじりながら
自分で展開して必要なものだけ配置
あとは環境変数でOK
0372デフォルトの名無しさん
垢版 |
2019/07/21(日) 19:42:43.85ID:2OgYyrCw
>>371
370です。有難うございます。
windows7 ではインストール箇所固定で変更できませんでしたが、何故かwindows8.1ではあっさり指定可能でした。
狐につままれた気がします。
0373本田
垢版 |
2019/08/31(土) 22:41:40.88ID:L1gcRRDJ
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.
0376デフォルトの名無しさん
垢版 |
2019/10/07(月) 11:13:01.24ID:PnP9spqR
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
0378デフォルトの名無しさん
垢版 |
2019/10/08(火) 10:22:21.02ID:xX7RkViq
バイナリならthomasのが安定
0380デフォルトの名無しさん
垢版 |
2019/10/08(火) 21:43:34.22ID:ttfQLc3F
Hiroi氏のサイト、tcltk以外の言語も分かり易く要点がまとまってるので昔からお世話になってます。
0382デフォルトの名無しさん
垢版 |
2019/10/13(日) 20:56:46.24ID:2zguGNaS
8月から実用編ががっつり増えてるのな。
tailcall なんてのが使えるようになってたんだな。知らなかったよ。
0386デフォルトの名無しさん
垢版 |
2019/10/17(木) 18:50:58.80ID:TwA5RghT
去年のやで
0388デフォルトの名無しさん
垢版 |
2019/11/15(金) 23:56:26.85ID:FeK5qZdY
385 です 少し慌てました。 正式な予告は次の様です。もうすぐのようです。

Tcl/Tk 8.6.10 Release Announcement
November 21, 2019
0389デフォルトの名無しさん
垢版 |
2019/11/22(金) 20:00:41.46ID:BBXvLohs
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との連携はそれなりにできているようです。
ただし [カラー絵文字] 直後の入力が制御不能になりやすく、まだ不安定です。

それほど [カラー絵文字] を入力したい!ってワケではないけど指標にはなるでしょう。
もうちょっと頑張って欲しいですね。 少しずつ進化してるのは嬉しいです。
0390デフォルトの名無しさん
垢版 |
2019/11/30(土) 13:19:16.86ID:PS9NkWt5
フリーソフトに註文するって but in vane ...
0391デフォルトの名無しさん
垢版 |
2019/12/13(金) 01:08:58.54ID:aZGEyYG5
exec の結果を逐一表示しながら、最後にエラーでても落ちないようにできない?
catch {exec long_runtime} mess
puts $mess
とすると exec の処理が全部終わってから、処理結果が表示される。
0392デフォルトの名無しさん
垢版 |
2019/12/13(金) 09:38:34.12ID:V90d9jYd
pipe
0393デフォルトの名無しさん
垢版 |
2020/03/29(日) 21:26:23.81ID:g1nB5uxI
今更だけど
tcl/tk はトロさ回避のため表示は遅延実行が徹底してる
まめにupdate入れないと待たされた後、まとめて表示になり易い
0394デフォルトの名無しさん
垢版 |
2020/04/03(金) 07:44:21.86ID:lraMIADv
教えて下さい
tcl/tkのメソッドってざっくり言って何?
procとどう違うもの?
0395デフォルトの名無しさん
垢版 |
2020/04/03(金) 14:30:59.68ID:VVxcL9Mv
正しいものを選べ
1.マクロ
2.コマンド
3.インターフェース
4.プロシジャ
0396デフォルトの名無しさん
垢版 |
2020/04/05(日) 11:04:13.64ID:bxpYlQXG
へー、そんなのあるんだ
知らんかった。
C++のメンバ関数のことだね、メソッド
0397デフォルトの名無しさん
垢版 |
2020/04/05(日) 13:10:25.45ID:P07lI1PF
boostよりもtcl/tkの方が普及して欲しかった
レスを投稿する


ニューススポーツなんでも実況