我正在寻找一种构建 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 交互式 shell 中编写和测试 tcl 代码。但是很多 tcl 代码是用 C++ 填充的,而不是硬编码的。所以不是那么可行。
一大堆 tcl 代码是用 C++ 例程编写的。这使得它很难维护。
我想从社区中寻求一些见解。