Сделать как в QtScript Tetrix Example, передать указатель на класс в скрипт
C++ (Qt)
Q_DECLARE_METATYPE(QPainter*)
А потом в скрипте его использовать
C++ (Qt)
TetrixBoard.prototype.onPaint = function(painter) {
if (this.isPaused) {
this.ui.drawPauseScreen(painter);
return;
}
for (var i = 0; i < TetrixBoard.BoardHeight; ++i) {
for (var j = 0; j < TetrixBoard.BoardWidth; ++j) {
var shape = this.getShapeAt(j, TetrixBoard.BoardHeight - i - 1);
if (shape != TetrixShape.NoShape)
this.ui.drawSquare(painter, j, i, shape);
}
}
if (this.curPiece.shape != TetrixShape.NoShape) {
for (var i = 0; i < 4; ++i) {
var x = this.curX + this.curPiece.getX(i);
var y = this.curY - this.curPiece.getY(i);
this.ui.drawSquare(painter, x, TetrixBoard.BoardHeight - y - 1,
this.curPiece.shape);
}
}
}
Прописать свои методы.
Конечно наследование от QObject'а поинтереснее.