我正在寻找一种构建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 ++例程编写的。这使得难以维护。
我想从社区中寻求一些见解。
答案 0 :(得分:1)
你不能使用C ++的Tk toolkit called as library functions吗?
此外,还有Tk/C++ - 不知道它有多好。他们重载了运算符和使用表达式模板,以便像Ccl一样使用C ++代码。非常酷!