如何设计一个主要运行tcl脚本的C ++ GUI应用程序

时间:2012-08-23 16:39:24

标签: c++ tcl

我正在寻找一种构建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 ++例程编写的。这使得难以维护。

我想从社区中寻求一些见解。

1 个答案:

答案 0 :(得分:1)

你不能使用C ++的Tk toolkit called as library functions吗?

此外,还有Tk/C++ - 不知道它有多好。他们重载了运算符和使用表达式模板,以便像Ccl一样使用C ++代码。非常酷!