使用
tolua++ 将 QObject/QWidget/QDialog/QPushButton 的某些函数绑定了一下
pkg
文件就是找到各自的
头文件, 把不需要的
删除掉.
测试代码 >>
- local w = QDialog()
- w:show()
- QObject:connect(w, '2accepted()', w, '1hide()')
- local size = QSize(1,2)
- print (size:width(), size:height())
- -- QPushButton --
- local button = QPushButton()
- --QObject:connect(button, '2pressed()', w, '1hide()')
- --button:show()
发现
错误: 第十行
- error in function 'connect'.
- argument #2 is 'QPushButton'; 'const QObject' expected.
- stack[0] -> line -1 : unknown[[C] : line -1]
- stack[1] -> line -1 : connect()[[C] : line -1]
但是第三行的connect表明, 这个lua的绑定是发生作用了的.
应该是判断不了 QPushButton 来自 QObject, 仔细看 QPushButton 的
继承:
- class Q_GUI_EXPORT QPushButton : public QAbstractButton
来自 QAbstractButton, 但是 QAbstractButton 是纯基类
问题来了:
1) 纯基类在
tolua++ 中不知道如何写绑定?
2) 怎么支持 lambda 表达式?
- QObject:connect(w, '2pressed()', function() print("sdf") end)