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

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

بدأه عاشق البركمان في 23 يوليو 2012 · 4 رد · 2,011 مشاهدة · في قسم Cross Platform GUI Libraries العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

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

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

تحميل

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

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

تم تعديل هذه المشاركة بواسطة عاشق البركمان في 23 يوليو 2012 في 18:17

2
#2

السلام عليكم

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

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

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

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

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

تم تعديل هذه المشاركة بواسطة عاشق البركمان في 23 يوليو 2012 في 18:19

1
#3

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

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

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

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

1

556891961.gif

I am learning from you

it is the programmer eye

#4

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

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

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

فقك الله

تم تعديل هذه المشاركة بواسطة محمد عودة في 23 يوليو 2012 في 21:09

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#5

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

المشاكـس5550

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

###

محمد عودة

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

_-_-_-_

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

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