الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أدة بسيطة من برمجتي

بدأه أباسليمان في 3 أغسطس 2009 · 6 رد · 1,318 مشاهدة · في قسم Cross Platform GUI Libraries العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه ،،

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

هذه أداة بسيطة تقوم بالتحويل بين الوحدات الرقمية (بايت كيلوبايت إلخ

قمت به بفصل البرمجة عن الواجهة

الملفات التالية

conversion.h

conversion.cpp

هي ملفات البرمجة والباقي ملفات تابعة للواجهة

قمت بذالك ﻹني بإذن الله أنوي قريبا إصدار برنامج ضخم لتحويل بين العملات والحودات بأشكالها وأنواعها

عموما اريد ارئكم وملاحضاتكم

صحيح البرنامج تمت برمجته على منصة لنكس لذا أرجوا من يعمل على وندوز أن يقوم بإعادة ترجمته ووضع ملف

exe

QtCore4.dll

QtGui4.dll

mingwm10.dll

في ملف مستقل وإرفاقه

أنا الأن خارج المملكة وليس لدي إلا لنكس لذا لم أستطع أن أترجمه على ويندوز

conversion.tar.gz

#2

أرجوا ألا تحملو المرفق الأول ﻹن الملف الذي أرفقته به أخطاء

مرفق الملف بعد التصحيح

conversion.tar.gz

#3

بارك الله فيك ،

ملاحظات:

* بالنسبة للثوابت ال Enumerated ، يمكنك ان تضعها مرة واحدة في تعريف الفئة بدلا من ان تضعها في كل دالة.

* ايضا ضع Layout في النافذة حتى تظهر بشكل مناسب مع حجمها .

* اسماء ال widgets يفضل ان تدل على نوعها، مثلا fromUnitSpinBox و toUnitSpinBox بدلا من seconedSize و mainSize

* المتغير number في الفئة conversion من الممكن ان تستغني عنه وتكون الدوال بهذا الشكل :

 

[color= #0000ff;]long [color= #0000ff;]long conversion[color= #000000;]::[color= #808000;]KB[color= #000000;]([color= #0000ff;]long [color= #0000ff;]long number,[color= #0000ff;]int choice[color= #000000;])

[color= #000000;]{

	[color= #0000ff;]long [color= #0000ff;]long value;

 

    [color= #0000ff;]if [color= #000000;](choice [color= #000000;]== BY [color= #000000;])

		value [color= #000000;]= number[color= #000000;]/[color= #ff0000;]1024;

 

	[color= #0000ff;]else [color= #0000ff;]if [color= #000000;]( choice [color= #000000;]== KB [color= #000000;])

		value [color= #000000;]= number;

 

	[color= #0000ff;]else [color= #0000ff;]if [color= #000000;]( choice [color= #000000;]== MB [color= #000000;])

		value [color= #000000;]= number[color= #000000;]*[color= #ff0000;]1024;

 

	[color= #0000ff;]else

value [color= #000000;]= number[color= #000000;]*[color= #ff0000;]1048576;  

 

    [color= #0000ff;]return value; 

[color= #000000;]}

ايضا من الممكن ان تجعل كل الدوال في الفئة conversion ك static ، وذلك حتى لا نضطر الى انشاء object حتى نحسب قيمة تحويل,

بالتوفيق.

تم تعديل هذه المشاركة بواسطة SudaNix في 4 أغسطس 2009 في 05:55

#4

جزاك الله خيرا أخوي sudanix النقاط الثلاثة الأولى جاري العمل عليها وتعديل البرنامج.

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

وبالنسبة للكود الذي كتبته هل أفضل أن أكتبه عن طريق دالة ال if أم عن طريق دالة switch .

وأخير بالنسبة لمجتمع qt العربي الموقع مايفتح.

والله يجزاك بالخير ويعافيك واعذرني على كثرة الأسئلة أبستغل الفرصة حتى أستفيد منك بقدر الإمكان.

#5
اقتباس
ولكن بالنسبة لنقطة الرابعة فهل هناك فرق كبير يعني صحيح أنني أستغنيت عن المتغير ولكن أصبحت الدلة تستقبل متغيرين عوضا عن متغير واحد.

نعم ، في هذه الحالة يجب ان تمرر متغيرين الى الدالة ، الاول هو العدد والثاني هو الاختيار .

اقتباس
وبالنسبة للكود الذي كتبته هل أفضل أن أكتبه عن طريق دالة ال if أم عن طريق دالة switch .

الطريقتين صح .

عندي ملاحظة اخرى وهي عمل دالة تحويل واحدة بدلا من كم دالة ، بحيث تاخذ العدد والاختيار الاول والثاني.

[color= #0000ff;]long [color= #0000ff;]long conversion[color= #000000;]::[color= #808000;]convert[color= #000000;]([color= #0000ff;]long [color= #0000ff;]long number,[color= #0000ff;]int firstChoice,[color= #0000ff;]int secondChoice[color= #000000;])

[color= #000000;]{

    [color= #007f00;]// code here

[color= #000000;]}

وبالنسبة لموقع كيوتي العربي ، فسيتم ارجاعه الى العمل غدا او بعد غد -ان شاء الله .

الى اللقاء.

#6

الله يجزاك بالخير

تم تعديل الكود بمعضم الملاحظات

وبالنسبة للملاحظة الأخيرة قمت بتقسيم الدوال لترتيب البرنامج وخاصة أني كما قلت سابقا أنوي عمل برنامج ضخم لتحويل بين العملات والوحدات

وجزاك الله خيرا على جميع ماقدمت لي وللأعضاء

البرنامج مرفق

conversion.tar.gz

#7

اوكي جميل ،

بالنسبة للناتج ، يمكنك المرة القادمة ان تعمل (readOnly(true بدلا من(setEnabled(false حتى نقدر نعمل copy للناتج :rolleyes: .

بالتوفيق.

مواضيع مشابهة