●●●●TCL/TKなら俺に聞け 4●●●● (542レス)
1-

311: 2018/12/09(日)14:47 ID:rgDJoSoN(1) AAS

312: 2018/12/09(日)18:17 ID:OYBInM51(1) AAS
>>303
Swingじゃなくて、AWTとかSWTだな。
313: 2018/12/15(土)02:13 ID:VzUt8Mhi(1) AAS
ビットウォークの名前が過去ログの2から消えてる
過去のレガシーがまったく受け継がれてないわけだ
本田が2003年からいてワロタ
314
(3): 2019/01/16(水)23:54 ID:OcKWB7fI(1) AAS
Python3.7でTKinterを試したところHiDPI環境では
低解像度のものが拡大されて表示されてしまうようです。

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

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

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

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

という感じにすると
フォントサイズが20になってくれればくっきり表示されるのですが
フォントサイズ10の文字が二倍に拡大されて表示される、という状態です。
Tkのスケーリングを0.5倍にして、フォントサイズを20を直に指定して表示できるか試してみましたが
1.0以下は指定できないみたいで駄目でした。
GTKに入門してみたいと思います。
318: 314 2019/01/17(木)20:20 ID:XV1+qWbe(2/2) AAS
すみません解決しました。
python.exeを右クリック→互換性タブ→HiDPI設定をいじる
319: 2019/01/17(木)20:44 ID:qOv+RZ4q(1/3) AAS
tkinterの話だから変だとは思ってたが
pythonの話かよ
まじ死ねや
320: 2019/01/17(木)20:50 ID:qOv+RZ4q(2/3) AAS
>>307
余裕で現役だから無理だな
321: 2019/01/17(木)21:04 ID:qOv+RZ4q(3/3) AAS
すぐりふひとはtcl/tkから離れて幸せになれたのに本田と来たら・・・
322: 2019/01/18(金)04:10 ID:6U5tZjv3(1) AAS
ほらね
おま環だろ?
323: 2019/01/25(金)09:37 ID:nTExwXep(1) AAS
PythonってもしかしてTcl/Tkの拡張?
324
(1): 2019/02/06(水)10:34 ID:+qagyc5o(1) AAS
tcltkで書いたものとtkinterで書いたものを比べたら
速度はtcltkの方が若干勝ってるんだけど
tkinterで書いたものの方がスクロールはスムーズだったのと
大量にgrid入れたscrollableFrameのスクロールだと
tkinterの方がヌルヌル動いたのでtkinterの勝ち
325: 2019/02/06(水)22:05 ID:IS/oYwEJ(1) AAS
大勝利!!
326: 2019/02/07(木)18:31 ID:Zm0kP7hd(1) AAS
tclは永遠に不滅ですか
少なくとも向こう10年くらいはメインストリームですか
327: 2019/02/09(土)06:53 ID:Ewrmd5js(1) AAS
あのwindowsもtclで書かれているくらいだからな!
328
(1): 2019/02/09(土)13:36 ID:6aHCNF5r(1) AAS
python+tkinterで用が足りるのでtclは要らない子
329: 2019/02/14(木)21:12 ID:QKLtUgZm(1) AAS
tcl/tkはRを使ったデスクトップアプリを作るときに重宝する
デスクトップアプリにこだわらずにshinyでwebアプリ作ればいいじゃんと言われれば返す言葉がないが
330
(2): 2019/02/16(土)11:09 ID:lF7O1vpr(1/6) AAS
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]

みたいに書くことは出来ますか?
後者二つともエラーになるので
あるとしたら正しい書き方は何ですか?
331: 2019/02/16(土)12:37 ID:8dsmpsXe(1/5) AAS
何がやりたいの?
lstの要素が1、2、3で変数sの値を文字列"1 2 3"にしたいなら下のでいいけど
set s $lst
332
(1): 2019/02/16(土)12:43 ID:lF7O1vpr(2/6) AAS
set s [format "%03d %03d %03d" $lst]
みたいなのでもうまくいかないんです
333: 2019/02/16(土)12:51 ID:8dsmpsXe(2/5) AAS
integer指定してるのに文字列食わしてるからじゃん
334: 2019/02/16(土)12:57 ID:lF7O1vpr(3/6) AAS
set lst [list [expr 1] [expr 2] [expr 3]]
set s [format "%03d %03d %03d" $lst]

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

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

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

だめでした><
もう一息な気がするのであきらめつかずモヤモヤしています
340: 2019/02/16(土)15:44 ID:O+uQ3VIp(1) AAS
代行レスはここへ
2chスレ:operatex

160 名前: [Φ|(|´|Д|`|)|Φ] BBxed!! 臨時で名無しです[] 投稿日:2019/02/16(土) 13:42:57.64
お手数ですがよろしくお願いします。

【板名】プログラム技術
【スレ名】●●●●TCL/TKなら俺に聞け 4●●●●
【スレのURL】2chスレ:tech
【名前欄】代行経由
【メール欄】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]

これでどうでしょうか。
1-
あと 202 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.020s