【发布时间】:2010-11-25 20:06:36
【问题描述】:
我的嵌入式项目包含一个用于 PC 的 Qt 应用程序,它主要是一个用于调试和测试的模拟器。在应用程序中,我可以创建几个小部件,它们代表我的嵌入式软件或模拟由应用程序控制的硬件,或者可以生成用于测试的外部输入。
我计划通过添加 Lua 脚本来改进应用程序,以便可以从脚本创建或控制小部件。我需要一种优雅的方式来单步执行脚本。 我计划的脚本如下:
createThermometerWidget(10,20,30)
while time < maxTime do
setTemperature(20+time/1000)
pauseSimulation()
time = time + 1
end
自定义函数pauseSimulation 应该停止 Lua 脚本,启用 Qt 事件循环以便与软件交互(例如设置其他输入),并且在按下按钮后脚本将继续。
我的第一个想法是为 Lua 执行创建一个单独的线程,该线程将由 pauseSimulation 停止并由按钮释放。但是不能从非主线程创建 Qt 小部件,因此我必须在主线程中创建所有小部件并将所有构造函数参数从 Lua 函数传递到主线程。
有没有更流畅的方法?
【问题讨论】: