سؤال

بالنسبة للمهام التي ستستغرق أكثر من بضع ثوانٍ، في رأيي، يجب أن توفر واجهة المستخدم الجيدة شريط تقدم بالإضافة إلى المعلومات المناسبة حول تقدم العملية.(تفضل مايكروسوفت بتوفير إرشادات واجهة المستخدم حول هذا الموضوع، ولكني أريد لوحة حالة أكثر تقدمًا بعض الشيء.)

فئة "المهمة" التي أستخدمها قادرة على تسجيل الرسائل، وإذا كانت الرسائل مهمة بدرجة كافية (تحذير أو خطأ)، فأنا أرغب في عرضها على لوحة التقدم.سيكون من الجيد أيضًا وجود إشارة رسومية عند حدوث تحذيرات أو أخطاء (ربما رمز تحذير أو خطأ).إذا كان هناك العديد من هذه الرسائل، أو مربع نص، أو عرض القائمة، أو ربما بعضها مراقبة التقرير يمكن أن يكون مناسبا هنا.

يمكن أن يكون هناك زر إلغاء أثناء تشغيل المهمة، وبعد اكتمال المهمة، سيكون زر "عرض السجل" أمرًا رائعًا أيضًا.

باختصار، لدي فكرة جيدة عن كيفية تنفيذ لوحة الحالة الخاصة بي، ولكنني أرغب حقًا في الحصول على بعض المساهمات في هذا الشأن.هل فاتني شيء مهم؟هل سأبالغ في هذا؟هل ربما تكون هناك أي مكونات مثل هذه متاحة بالفعل؟

هل كانت مفيدة؟

المحلول

بالنسبة للتسجيل، من المحتمل أن يكون لديك مستوى أعلى آخر من الخطأ.هذه هي المستويات التي أقوم بتنفيذها عادةً (كما تم تمريرها من DEC في الثمانينات).

  1. DEBUG - رسالة ذات أولوية منخفضة للغاية وضعها المطور للتو للمساعدة في تشخيص ما يحدث في حالة حدوث خطأ ما.
  2. معلوماتية - لا توجد مشكلة، فقط قم بالإبلاغ عن التقدم الذي قد يكون المستخدم مهتمًا به.
  3. تحذير - قد يمثل هذا الأمر مشكلة في بعض المواقف، ولكنه قد يكون جيدًا أيضًا.
  4. خطأ - مشكلة محددة.ويجب إعلام المستخدم، ولكن البرنامج سيحاول الاستمرار.
  5. FATAL - مشكلة سيئة للغاية لدرجة أن البرنامج لا يمكنه الاستمرار.

والثاني هو، بما أنك تطلق على هذا اسم "لوحة التقدم"، أفترض أنك تخطط لتنفيذ نوع ما من شريط التقدم.لقد كان هناك بالفعل قدر لا بأس به من البحث في هذا الأمر أشرطة التقدم.الشيء الرئيسي هو أنه مهما فعلت، لا تدع الشريط يصبح أبطأ مع تقدمه.وهذا يجعل الأمر يبدو وكأنه يستمر إلى الأبد.

أخيرًا، يبدو أنك تفكر في نوع ما من سطر رسالة الحالة.إذا كنت تبحث عن بعض رسائل الحالة الجيدة، أقترح عليك استخدام بعض منها هؤلاء. :-)

نصائح أخرى

لديك هنا التي يمكن أن تعطيك بعض الأفكار حول ما يمكن إدراجها في هذا النوع من واجهة المستخدم الرسومية:

في النوع، وتحديد أهدافك ونطاق هذا الفريق الحالة قبل سرد تفاصيل التصميم.

ملحوظة: مع خيارات أكثر من اللازم على ذلك، سوف تتطور قبل أن تتحول إلى "لوحة تحكم"، -)

وأنت تريد عرض تسجيل الرسائل أثناء وجوده في التقدم، وليس فقط في نهاية المطاف. في حالة حدوث خلل، وأنها سوف تكون في كثير من الأحيان قبل انتهاء المهمة، وUI يعتقد كل شيء لا يزال الأزيز على طول. ويمكن أن يكون مزعج حقا أن تجد هذا يحدث، وبعد رسالة سجل مرئية فقط (من دون الذهاب الى بعض الملفات الخارجية في مكان ما) هو رسالة إعلامية بعض عشوائية بعيدة كل البعد عن المشكلة الفعلية.

و(أنا لا أعرف ما إذا كنت تفعل هذا بالفعل، كما أنه ليس من الواضح من سؤالك. إذا كنت، والقبعات.)

وأعتقد أنه من المهم أن شريط التقدم الرئيسي تملأ تماما مرة واحدة، وهناك دائما مؤشرا على التقدم.

ولقد فعلت مؤخرا شيء مشابه جدا في العمل. وكانت المهام طويلة، مع العديد من المهام الفرعية. وكان واجهة انتهى بي الأمر مع شريط التقدم مزدوج، والتي كانت في الواقع الأول والأخير من كومة من أشرطة التقدم.

وو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])

لجعل أعلى شريط التقدم أكثر سلاسة.

وبالإضافة إلى ذلك، يمكن للمطورين تظهر جميع أشرطة التقدم أن نرى لماذا يستغرق الأعمار، وأعتقد أنك يمكن أن تجعل السجلات لائقة للخروج منه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top