Como projetar um bom "painel de progresso"

votos
2

Para tarefas que vai demorar mais do que alguns segundos, uma boa interface de usuário, na minha opinião, deve fornecer uma barra de progresso, juntamente com as informações adequadas sobre o progresso da operação. (Microsoft gentilmente fornecer usuário Interface Guidelines sobre este tema, mas eu quero um painel de status que é um pouco mais avançado.)

A classe tarefa que estou usando é capaz de mensagens de log e se as mensagens são importantes o suficiente (de aviso ou de erro), eu gostaria de exibi-los no painel de progresso. Também seria bom com uma indicação gráfica quando avisos ou erros ocorreram (um ícone de aviso ou erro talvez). Se há muitas dessas mensagens, uma caixa de texto, uma exibição de lista ou talvez algum controle relatório poderia ser apropriado aqui.

Não poderia haver um botão Cancelar enquanto a tarefa está em execução, e depois que a tarefa foi concluída, uma View log botão também seria bom.

Para resumir, eu tenho uma boa idéia de como implementar meu painel de status, mas eu realmente gostaria algumas informações sobre isso. Eu perdi alguma coisa importante? Estou indo ao mar sobre isso? Há talvez quaisquer componentes como este já disponíveis lá fora?

Publicado 10/12/2008 em 13:40
fonte usuário
Em outras línguas...                            


4 respostas

votos
2

Para o log, você provavelmente deve realmente ter um outro nível mais elevado de erro. Estes são os níveis I normalmente implementam (como swiped de dezembro de volta na década de 80).

  1. DEBUG - uma mensagem muito baixo prioity que o desenvolvedor simplesmente colocar para ajudar a diagnosticar o que está acontecendo no caso de algo der errado.
  2. INFORMATIVO - Nenhum problema, apenas relatar o progresso que o usuário pode estar interessado.
  3. AVISO - Algo que poderia ser um problema em algumas situações, mas também pode ser apenas multa.
  4. ERRO - Um problema definitivo. O usuário deve ser informado, mas o programa vai tentar continuar.
  5. FATAL - Um problema tão ruim que o programa não pode continuar.

A segunda é, desde que você está chamando isso de "painel de progresso", eu suponho que você está pensando em implementar algum tipo de barra de progresso. Houve realmente um pouco de pesquisa em barras de progresso . A principal coisa é que, faça o que fizer, não deixe que o bar fica mais lento à medida que progride. Isso faz parecer se arrastar para sempre.

Finalmente, parece que você está considerando algum tipo de linha de mensagem de status. Se você está procurando algumas boas mensagens de status, eu sugiro que você use alguns dos estes . :-)

Respondeu 10/12/2008 em 15:56
fonte usuário

votos
1

Eu acho que é importante que a sua barra de progresso principal encher-se apenas uma vez, e sempre há indicação de progresso.

Eu fiz apenas recentemente algo muito semelhante no trabalho. As tarefas eram longas, com muitas subtarefas. A interface I terminou foi uma barra de progresso de casal, que eram, na verdade, o primeiro eo último de uma pilha de barras de progresso.

A API é algo como

StartNewTask(Caption,NumberOfSubtasks)
EndTask 
SetProgress(Caption,NumberOfSubtasksFinished)

StartNewTaskempurra um novo bar na pilha, e EndTaskaparece um.

SetProgress define o progresso da barra de progresso mais recentemente-empurrado, e ondulações as alterações para bares pais. Por exemplo:

StartNewTask('Doing 2 things',2)
 SetProgress('Done 1 now',1)
 StartNewTask('Big Subtask',40)
  ...
  SetProgress('Done some subtasks',10)

Agora, existem 2 barras de progresso mostrado, a segunda a 25% (10/40) e o primeiro a 62,5% (02/01 + 10/40 * 2)

Como eu disse acima, se você tem> 2 tarefas na pilha, eu só mostro o primeiro eo último (primeiro dá o progresso geral e nunca vai para trás, segundo dá indicação de atividade atual)

Você poderia estender esta dando um peso para cada sub-tarefa, ou seja,

StartNewTask(Caption,[ListOfSubTaskWeightings])

Para fazer com que a barra de progresso top mais suave.

Além disso, os desenvolvedores podem mostrar todas as barras de progresso para ver por que demora muito tempo, e eu acho que você poderia fazer registros decente fora dele.

Respondeu 10/12/2008 em 19:53
fonte usuário

votos
1

Você vai querer ver as mensagens de log, enquanto em andamento, e não apenas no final. Se ocorrer um erro, ele vai muitas vezes ser antes da tarefa é feito, ea interface do usuário acha que tudo ainda está chugging. Pode ser realmente irritante para encontrar este está acontecendo, e ainda a única mensagem log visível (sem ir a algum arquivo externo em algum lugar) é alguma mensagem informativa aleatória distante do problema real.

(Eu não sei se você já está fazendo isso, como não é claro da sua pergunta. Se você é, chapéus off).

Respondeu 10/12/2008 em 19:40
fonte usuário

votos
1

Você tem aqui um especificações painel de status semelhantes que pode lhe dar algumas idéias sobre o que poderia ser incluído para este tipo de GUI:

Em tipo, definir seus objetivos e escopo deste Painel de Estado antes de enumerar os detalhes do projeto.

Nota: com demasiada opções sobre ele, você vai evoluir-lo em um "Painel de controle" ;-)

Respondeu 10/12/2008 em 13:46
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more