lua - QtLua 捕获滑块值变化
问题描述
我正在尝试使用 qtlua 制作一个简单的 UI,我想在其中每次更改时捕获滑块值。我试图连接到 valueChanged() 信号,但 qlua 给了我以下错误:
cannot find source signal valueChanged()
代码片段如下所示:
slide = (widget.sliderLight)
print(slide)
qt.connect(slide, 'valueChanged()',
function()
print('Value: ', slide.value)
end)
因此,只需在每次值更改时进行打印测试。但我无法让它工作。qtlua 的文档没有 qslider 的类,所以这对我来说是一个死胡同。而且我找不到任何将 qtlua 与连接到 valueChanged() 信号的滑块一起使用的示例。我发现的唯一示例是 qtuiloader 示例中的 test.lua,但它使用了一个计时器,我假设它是定期池化的。我的目标是将其连接到图像处理系统,因此如果我可以将其与值更改时联系起来,而不是使用计时器和检查系统进行修补,那将很有用。我对 qt 很陌生,所以一定遗漏了一些东西。任何和所有的帮助将不胜感激!哦,我确保在 qtdesigner 中选中了跟踪复选框,以确保发出信号。
解决方案
好的,所以我在 QT 的文档中为 valueChanged() 插槽挖掘了更多内容。原来,函数签名中有一个 int 参数,所以 Lua 连接代码正在寻找一个没有任何参数的函数签名。将上面的代码修改为以下代码可以按预期工作:
slide = (widget.sliderLight)
print(slide)
qt.connect(slide, 'valueChanged(int)',
function(w)
print('Value: ', w)
end)
声明具有相同签名的函数也会传入所需的值,这为我节省了显式值查询。希望有一天这对某人有用。
推荐阅读
- javascript - 停止或终止节点媒体服务器
- python-3.x - 如何在 Python Tkinter 中将这些按钮叠加在图像上作为背景
- android - 即使工作完成,警报对话框也不会关闭
- go - 如何从 CloudFlare 获取视频 ID 或使用生成的 ID 发布?
- html - 仅在 A 类和 B 类、A 类和 C 类之间转换,但 B 类和 C 类之间不能转换
- oauth-2.0 - Web 应用程序到第 3 方应用程序访问控制的 OAUTH2 混合流或授权代码流?
- java - 对于下面的 DOM 代码,我想获取日期字符串
- fortran - Fortran 重定位被截断以适应 - mcmodel -fPIC 不起作用
- json - 有没有办法使用 JSON 格式执行数字签名?与 XadES 类似,但更简单
- jquery - 如何将动态添加的 div 保存在另一个 html 文件中?