对于需要几秒钟的任务,我认为良好的用户界面应提供进度条以及有关操作进度的适当信息。 (微软在这个主题上提供User Interface Guidelines,但我想要一个更高级的状态面板。)
我正在使用的“任务”类能够记录消息,如果消息足够重要(警告或错误),我想在进度面板上显示它们。当警告或错误发生时,图形指示也是很好的(可能是警告或错误图标)。如果有很多此类消息,则可以在此处使用文本框,列表视图或某些report control。
任务运行时可能有一个取消按钮,任务完成后,“查看日志”按钮也会很好。
总结一下,我很清楚如何实现我的状态面板,但我真的想要一些输入。我错过了一些重要的事吗?我对此过火了吗?是否有任何这样的组件可以在那里使用?
答案 0 :(得分:2)
对于日志记录,您实际上应该有另一个更高级别的错误。这些是我通常实现的级别(在80年代从DEC中刷过)。
第二个是,因为你称之为“进度面板”,我假设你正在计划实现某种进度条。实际上对progress bars进行了相当多的研究。最重要的是,无论你做什么,都不要让酒吧随着进展而变慢。这使它似乎永远拖延。
最后,听起来您正在考虑某种状态消息行。如果您正在寻找一些好的状态消息,我建议您使用一些these。 : - )
答案 1 :(得分:1)
我认为您的主要进度条恰好填满一次非常重要,并且始终有进度指示。
我刚刚在工作中做了一些非常相似的事情。任务很长,有许多子任务。我最终得到的界面是一个双进度条,实际上是一堆进度条的第一个也是最后一个。
API类似于
StartNewTask(Caption,NumberOfSubtasks)
EndTask
SetProgress(Caption,NumberOfSubtasksFinished)
StartNewTask
在堆栈上推送一个新栏,EndTask
弹出一个。
SetProgress设置最近推送的进度条的进度,并将更改波动到父条。例如:
StartNewTask('Doing 2 things',2)
SetProgress('Done 1 now',1)
StartNewTask('Big Subtask',40)
...
SetProgress('Done some subtasks',10)
现在,显示了2个进度条,第二个是25%(10/40),第一个是62.5%(1/2 + 10/40 * 2)
就像我上面所说的,如果你在堆栈中有> 2个任务,我只显示第一个和最后一个(第一个给出整体进度而且从不倒退,第二个给出当前活动的指示)
您可以通过对每个子任务进行加权来扩展它,即
StartNewTask(Caption,[ListOfSubTaskWeightings])
使顶部进度条更流畅。
此外,开发人员可以显示所有进度条,看看为什么需要多长时间,而且我认为你可以用它来制作体面的日志。
答案 2 :(得分:1)
你这里有一个similar Status Panel specifications,它可以为你提供一些关于这种GUI可以包含的内容的想法:
在排序中,在列出设计细节之前定义此状态面板的目标和范围。
注意:如果选项太多,您会将其演变为“控制面板”; - )
答案 3 :(得分:1)
您希望在进行中查看日志消息,而不仅仅是在最后。如果发生错误,通常会在任务完成之前,并且UI认为所有内容仍然存在。发现这种情况真的很烦人,然而唯一可见的日志消息(没有去某处的某个外部文件)是一些远离实际问题的随机信息消息。
(我不知道你是否已经这样做了,因为你的问题并不清楚。如果你是,那就戴帽子了。)