【发布时间】:2016-04-11 01:25:50
【问题描述】:
我可能已经把自己逼到了一个角落,但这在当时对我来说是个好主意。
我一直在开发一个界面,允许用户修改机器人设备的设置,即速度、方向、力等,并以组合框的形式提供大量选项。问题是在子类别中大约有一千种这样的东西。例如速度类别 x1、x2、x3、Y1、y2 等。因此,与其在 QT 中创建一千个组合框,我认为最好创建一组 50 个(ish)然后提供几个按钮在类别之间切换。因此,当用户选择速度 QT 时,使用适当的选项填充组合框,设置标签的样式表和文本等。所以它看起来好像存在一个专用页面。然后,如果用户选择方向,QT 将每个框的当前索引写入专用数组,然后用适当的内容重新填充框、标签等。然后,我会一遍又一遍地为系统的各种需求执行此操作。
所有这些似乎都运行良好。但是,我现在处于一个绑定中,提供的导航到每个页面的选项已经增加。例如,我有前进/后退按钮(就像您在设置向导中所期望的那样),以及顶部的操作菜单可以跳转到页面。所以现在代码变得非常重复。如果您选择下一个按钮,我会将当前值写入数组,然后重新填充。如果您从任何地方跳转到该页面,我会查看自己在哪里,将其写入数组并填充框。因此,如果我需要更改任何内容,我必须在代码中的许多地方进行更改。
我知道这不是最优的。我想做的是运行一个连续循环,就像我通常在 C 中使用 Micros 所做的那样。所以程序可以在每次传递中查看一个变量,如果是,那么它会这样做。然而,我不够熟练,无法在 QT 中解决这个循环。所以我的新想法是……
是否可以使用变量触发动作或插槽。例如,如果用户按下 Next 按钮,它会触发一个不存在的按钮插槽,以便 QT 执行特定的代码行?然后我可以有一个专门的部分专注于阅读和写作框,有一堆动作会把我带到那里。
【问题讨论】:
-
不清楚为什么 FWD/BCK 按钮必须使用与直接导航不同的组合代码。在这两种情况下,它都是“'保存当前屏幕,填充新屏幕”......?
-
:) 非常感谢您的反馈。你可能是对的,我只是一个天真的机甲。工程师试图弄清楚。不过我会调查一下。谢谢