奇思妙想 我使用C++和Qt的脚本语言CHAISScript。我定义了这样的函数: void ChaiPainter::drawRectangle(QPainter *painter, int x, int y, int height, int width) { painter.drawRect(x, y, width, height); }
以及在涂装活动中:奇思妙想 我使用C++和Qt的脚本语言CHAISScript。我定义了这样的函数: void ChaiPainter::drawRectangle(QPainter *painter, int x, int y, int height, int width) { painter.drawRect(x, y, width, height); },c++,qt,chaiscript,C++,Qt,Chaiscript,以及在涂装活动中: void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); chaiPainter->mChai.add(chaiscript::var(&painter), "painter"); chaiPainter->mChai.add(chaiscript::fun(&ChaiPainter::drawRectangle), "drawRec
void MainWindow::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
chaiPainter->mChai.add(chaiscript::var(&painter), "painter");
chaiPainter->mChai.add(chaiscript::fun(&ChaiPainter::drawRectangle), "drawRect");
chaiPainter->mChai("drawRect(painter, 5, 5, 100, 100)");
}
错误是:
'chaiscript::Eval_Error'what():
错误:“没有与之匹配的函数。”
使用函数“drawRect”分派到
在(1,1)处进行评估期间
我做错了什么?从文档中可以看出,您需要使用
fun(mem\u fn,instance)
表单来获取预绑定函数:
chaiPainter->mChai.add(
chaiscript::fun(&ChaiPainter::drawRectangle, chaiPainter), "drawRect");
我不明白,我怎么错过了。非常感谢。