C++ GUI アプリケーションを構築するための適切なアプローチを探しています。そのコアは、大量の Tcl コードを生成し、Tcl C++ API を介して実行します ( #include <tcl.h>
)。GUI は、ユーザーがこれらの tcl スクリプト タスクを完了するための簡単な方法を提供します。
つまり、GUI コントロールに関連付けられた各コールバック関数内では、ostringstream を使用して Tcl コードを入力し、それを Tcl インタープリターに渡すようなものです。例えば:
bool execTclProc1(options) {
ostringstream oss;
oss << "package require MyPackage \n";
string optionsForTcl = genOptionsForTcl(options);
oss << "myTclProc1 " << optionsForTcl << endl;
if(Tcl_Eval(interp, oss.c_str() == TCL_OK) {
// print out some messages to the GUI message window
}
...
}
このデザインのマイナス面:
デバッグが困難な Tcl コード エラー。Tcl コードを変更するたびに、C コードを再コンパイルする必要があるためです。手っ取り早い方法は、Tcl インタラクティブ シェルで Tcl コードを記述してテストすることです。しかし、多くの tcl コードは、ハードコーディングされたものではなく、C++ で作成されています。ですから、それほど実現可能ではありません。
Tcl コードのすべてが C++ ルーチンで記述されています。これにより、維持が困難になります。
コミュニティからいくつかの洞察を求めたいと思います。