如何设计一个好的“进度面板”

时间:2008-12-10 12:40:03

标签: user-interface language-agnostic logging progress-bar

对于需要几秒钟的任务,我认为良好的用户界面应提供进度条以及有关操作进度的适当信息。 (微软在这个主题上提供User Interface Guidelines,但我想要一个更高级的状态面板。)

我正在使用的“任务”类能够记录消息,如果消息足够重要(警告或错误),我想在进度面板上显示它们。当警告或错误发生时,图形指示也是很好的(可能是警告或错误图标)。如果有很多此类消息,则可以在此处使用文本框,列表视图或某些report control

任务运行时可能有一个取消按钮,任务完成后,“查看日志”按钮也会很好。

总结一下,我很清楚如何实现我的状态面板,但我真的想要一些输入。我错过了一些重要的事吗?我对此过火了吗?是否有任何这样的组件可以在那里使用?

4 个答案:

答案 0 :(得分:2)

对于日志记录,您实际上应该有另一个更高级别的错误。这些是我通常实现的级别(在80年代从DEC中刷过)。

  1. DEBUG - 一个非常低级别的信息,开发人员只是为了帮助诊断出现问题时发生的事情。
  2. INFORMATIONAL - 没问题,只需报告用户可能感兴趣的进度。
  3. 警告 - 在某些情况下可能会出现问题,但也可能没问题。
  4. 错误 - 一个明确的问题。必须通知用户,但程序将继续尝试继续。
  5. 致命 - 问题太严重,程序无法继续。
  6. 第二个是,因为你称之为“进度面板”,我假设你正在计划实现某种进度条。实际上对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认为所有内容仍然存在。发现这种情况真的很烦人,然而唯一可见的日志消息(没有去某处的某个外部文件)是一些远离实际问题的随机信息消息。

(我不知道你是否已经这样做了,因为你的问题并不清楚。如果你是,那就戴帽子了。)

豫ICP备18024241号-1