【问题标题】:how to pass C++ variable in command attribute of button in C++/Tk?如何在 C++/Tk 中按钮的命令属性中传递 C++ 变量?
【发布时间】:2015-08-26 04:22:36
【问题描述】:

我是 C++/Tk 的新手,想将 C++ 中定义的变量传递给按钮中的命令属性。 在此我发布代码 sn-p。

int eoutputvar ;

stringstream ss ;
string setquery ;

ss.str( "set eoutputvar 10" ) ;
setquery = ss.str() ;

entry(".eoutput") -textvariable(eoutputvar) -width(20) ;

button(".b1") -text("click it") -command( setquery );
pack(".eoutput" ) -side("left") ;

我的目标是在单击按钮时设置条目小部件的 eoutputvar。

【问题讨论】:

    标签: c++ tk


    【解决方案1】:

    你必须将你的变量声明为extern "C"

    extern "C" {
      int eoutputvar;
      char *setquery;
    }
    

    setquery 参数也需要是“C”变量,不能声明为string。就像在这个answer

    setquery = ss.c_str();
    

    【讨论】:

    • 不,它只是还没有工作。我也尝试过命名空间声明。
    • 抱歉,错过了setquery 所需的更改。传递给 Tcl/Tk 例程的所有变量都需要具有“C”链接。
    • 感谢您提供意见。但是,这个修复也没有像它所说的那样工作:c_str 不是 stringstream 的成员。如果您能为此提供解决方案,那将是非常有帮助的,因为我已经在谷歌上搜索了很多天。
    猜你喜欢
    • 1970-01-01
    • 2013-06-26
    • 2015-08-05
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 2018-12-07
    相关资源
    最近更新 更多