• 0
عاشق البركمان

برنامج آلــة حـــاسبة باستعمال C++/Qt

سؤال

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

رمضان مبروووك للأمة الإسلامية جميعها أعاده الله لنا بمزيد من الأجر والمغفرة

اليوم إن شاء الله سأشارككم ببرنامج : الة حاسبة بسيطة

24062012044905.png

هدا هو الكود مع بعض الشرحات البسيطة

ملف cpp.



MaFenetre::MaFenetre()

: QWidget()

{

setFixedSize(300,330);


m_champ1=new QLineEdit("entrer num1",this);//الحقل الاول

m_champ2=new QLineEdit("entrer num2",this);//الحقل التاني

m_champ3=new QLineEdit("resulta",this);//حقل النتيجة


b_plus=new QPushButton("+",this);// زر للجمع

b_moin=new QPushButton("-",this);//زر للطرح

b_multi=new QPushButton("x",this);//زر الضرب

b_divis=new QPushButton("÷",this);//زر القسمة


label=new QLabel(this);

label->setPixmap(QPixmap("calc.png"));



label->move(1,230);


m_champ1->move(95,10);//احداثيات

m_champ2->move(95,40);//احداثيات

m_champ3->move(95,220);//احداثيات


b_plus->move(120,90);//احداثيات

b_moin->move(120,120);//احداثيات

b_multi->move(120,150);//احداثيات

b_divis->move(120,180);//احداثيات


QObject::connect(b_plus,SIGNAL(clicked()),this,SLOT(plusv()));

QObject::connect(b_moin,SIGNAL(clicked()),this,SLOT(moinv()));

QObject::connect(b_multi,SIGNAL(clicked()),this,SLOT(multiv()));

QObject::connect(b_divis,SIGNAL(clicked()),this,SLOT(divisv()));

}

void MaFenetre::plusv()

{

double NumChamp1=m_champ1->text().toDouble();//NumChamp1 :اعطاء اسم للحقل 1

double NumChamp2=m_champ2->text().toDouble();//NumChamp2 : اعطاء اسم للحقل 2

double plus = NumChamp1 + NumChamp2;//عملية الجمع

m_champ3->setText(QString::number(plus));//3 طبع نتيجة الجمع في الحقل


}

void MaFenetre::moinv()

{

double NumChamp1=m_champ1->text().toDouble();//NumChamp1 :اعطاء اسم للحقل 1

double NumChamp2=m_champ2->text().toDouble();//NumChamp2 : اعطاء اسم للحقل 2

double moin = NumChamp1 - NumChamp2;//عملية الطرح


m_champ3->setText(QString::number(moin));//طبع نتيجة الطرح في الحقل 3

}

void MaFenetre::multiv()

{

double NumChamp1=m_champ1->text().toDouble();//NumChamp1 :اعطاء اسم للحقل 1

double NumChamp2=m_champ2->text().toDouble();//NumChamp2 : اعطاء اسم للحقل 2

double multi = NumChamp1 * NumChamp2;//عملية الضرب


m_champ3->setText(QString::number(multi));//طبع نتيجة الضرب في الحقل 3

}

void MaFenetre::divisv()

{

double NumChamp1=m_champ1->text().toDouble();//NumChamp1 :اعطاء اسم للحقل 1

double NumChamp2=m_champ2->text().toDouble();//NumChamp2 : اعطاء اسم للحقل 2

double divis = NumChamp1 / NumChamp2;//عملية القسمة


m_champ3->setText(QString::number(divis));//طبع نتيجة الضرب في الحقل 3

}

MaFenetre::~MaFenetre() { }

#include "mafenetre.h"

ملف .H



#define MAFENETRE_H


#include <QtGui>

#include <QWidget>

class MaFenetre : public QWidget

{

Q_OBJECT public: MaFenetre();

~MaFenetre();


public slots:

void plusv();//^_^

void moinv(); //^_^

void multiv();

void divisv();

private:

QLineEdit *m_champ1;

QLineEdit *m_champ2;

QLineEdit *m_champ3;

QPushButton *b_plus;

QPushButton *b_moin;

QPushButton *b_multi;

QPushButton *b_divis;

QLabel *label;


};

#endif
#ifndef MAFENETRE_H

السورس + البرنامج التنفيذي

تحميل

في انتظار اي تصحيح او اقتراح حول الكود !

تحياتي للجميع

تم تعديل بواسطه عاشق البركمان
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

السلام عليكم

من فضلكم اريدكم ان تقترحوا عليا بعض التمارين السهلة لانشاء برامج

لاستأنس على التعامل مع Qt .

انتظر اقتراحاتكم

وشكرا مسبقا لكل من سيساعدني :)

>>ملاحظة: مستوايــا في Qt مبتدئ :blush:

تم تعديل بواسطه عاشق البركمان
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا الك ... وهاي +2 من عندي

أين وصلت بتعلمك على Qt ... ؟؟ منذ مدة قرأت موضوعك المتعلق بالQt اظن عنوانه "الطريق المسدود"

بخصوص التمارين : اول شي بحب انك تطبقه هو جانب الشبكات ... يعني جرب تصميم برنامج باستعمال الQt خاص بالشبكات ، يستعمل مثلا ال Socket او اي شي وكل ما تكثر فيه المفاهيم والتقنيات البرمجية كل ما كان رااااائع وجذااااااب

موفق .... على فكرة أنا بانتظر جديدك :happy:

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اعتقد لو انك قمت بتصميم برنامج قاعدة بيانات واحده باستخدام كيوتو وسيكوليت وتستخدم فيها مفهموم model/view ومفهوم السحب والالقاء ومفهوم الــDelegates ان شاء الله مستواك سوف يتقدم بشكل هائل.

بالنسبة لبرنامج الآلة الحاسبة اقترح عليك استخدام فئات QLayout والفئات المشتقة منها لكي تقوم بضبط محاذة عناصر الشاشة

ثم بعد ذلك استخدم Qt Creator وربطة بالكود اعتقد انك ستكون منجز بشكل رائع ...

فقك الله

تم تعديل بواسطه محمد عودة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لكما على المرور الطيب والمشجع :)

المشاكـس5550

مستوايا في تقدم بطيء،، و احاول انهاء دورة Qt الموجودة على موقع site de ziro

###

محمد عودة

شكرا على الاقتراح، قريبا سأنتقل لـقراءة دروس حول قوعد البيانات وساخد ردك بعين الاعتبار

_-_-_-_

شكرا لكما مرة اخرى، توجيهاتكم تعني لي الكثير :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .