質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Tcl

Tclは、インタープリタ型のプログラミング言語。リスト処理や連想配列といった特長を持ち、文法もシンプルです。拡張や他言語への組み込みが簡単にでき、アプリケーション拡張にための組み込み言語として用いられます。

Q&A

解決済

1回答

632閲覧

Tcl/Tk 画面が表示されないなど

Helloc

総合スコア16

Tcl

Tclは、インタープリタ型のプログラミング言語。リスト処理や連想配列といった特長を持ち、文法もシンプルです。拡張や他言語への組み込みが簡単にでき、アプリケーション拡張にための組み込み言語として用いられます。

0グッド

0クリップ

投稿2020/10/15 11:32

編集2020/10/15 20:49

Tcl/Tk 複数の オプションメニュー が 選択できないの続きです

実装したいことは
run.vbsから Select_test.tclを起動して
[実行]ボタンが押され "終了"を検知するか、globVar1が "---"以外に 選択されるのを
run.vbs側が 検知したいのですが 画面が 表示されません

Select_test.tclの while分を 削除すると 表示されるのですが どうしてなのか 解りません

ご教示 お願い致します

このサイトの【サンプルダウンロード】にあるTcl/Tkの
サンプルコードを参考に作成しています
(詳細は Tk - Tcl/Tk)

1: Tcl/Tk配布ページからtcltk86t.zipをダウンロードして解凍し、binフォルダに入っているwish86t.exeとtk86t.dllをTk-TclTk\libフォルダ (Tk-TclTk\binフォルダ)に移動します。

run.vbs

VBS

1CreateObject("WScript.Shell").Run "cmd /q /c ""cd app & ...\bin\wish86t .\Select_test.tcl""",0,false 2ret = WScript.StdIn.ReadLine 3do while ((ret = "") or (ret = "未選択")) 4 wscript.sleep(100) 5 ret = wscript.StdIn.WScript.StdIn.ReadLine 6loop 7Msgbox (ret + " "+ "終了です")

Select_test.tcl

Tcl

1proc BuildGUI {} { 2 array set style { 3 bg #FF55DD 4 txtWidth 62 5 btnFont {"Meiryo UI" 11} 6 } 7 8 wm title . 選択画面 9 set winsize {200 100} 10 wm minsize . [lindex $winsize 0] [lindex $winsize 1] 11 wm maxsize . [lindex $winsize 0] [lindex $winsize 1] 12 wm resizable . false false 13 option add *font $style(btnFont) 14 . configure -bg $style(bg) 15 16 17 label .select_1 -text "果物 " 18 set var1 {--- みかん バナナ りんご メロン} 19 eval tk_optionMenu .menu_1 globVar1 $var1 20 grid .select_1 -row 0 -column 0 -sticky w 21 grid .menu_1 -row 0 -column 1 22 set globVar1 "---" 23 24 label .select_2 -text "野菜 " 25 set var2 {--- レタス 人参 ジャガイモ キュウリ} 26 eval tk_optionMenu .menu_2 globVar2 $var2 27 grid .select_2 -row 2 -column 0 -sticky w 28 grid .menu_2 -row 2 -column 1 29 30 button .btn -text "実行" -command stop 31 grid .btn -row 3 -column 0 -sticky w 32} 33proc stop { } { 34 puts "終了" 35 exit 36} 37 38proc Wait { } { 39 global globVar1 40 while {1} { 41 if {$globVar1 != "---"} { 42 break 43 } 44 } 45 puts $globVar1 46} 47BuildGUI 48Wait

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

TCLの方、他言語で 書き直しました

またVBSでは Runではなく Execで 解決しました

投稿2020/10/17 02:23

Helloc

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問