1- عمل برنامج بالبايثون + التعامل مع قواعد البيانات

تم تحميل الصفحة في 0,5931644 ثانية
1- عمل برنامج بالبايثون + التعامل مع قواعد البيانات

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,345
الإعجابات
3,108
النقاط
198
الإقامة
Snap: with-305
السلام عليكم ورحمة الله وبركاته


سنتعامل ان شاء الله مع الواجهه PyQt5 و قاعدة البيانات SQLite3

لتحميل SQLite3

هذا التشغيل يخلف عن ما قد نشرته هنا بما يخص تحويل الـ py الى exe لن نحتاج الى التحويل


نقوم بعمل برنامج من خلال الـ Designer PyQt5 مثل هذا التصميم




وسنتعامل معه برمجيآ ان شاء الله هذي بعض الاضافات للبرنامج حتى يصبح بهذا الشكل طبعآ برمجيآ




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

Python:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType
import sys,os


PROJECTS,_ = loadUiType(os.path.join(os.path.dirname(__file__),'Project.ui'))

class Main(QMainWindow,PROJECTS):
    def __init__(self,parent=None):
        super(Main, self).__init__(parent)
        self.setupUi(self)
        self.Img = QPixmap('Search.ico')
        self.lblImages.setPixmap(self.Img)
        self.lblImages.setScaledContents(True)
        self.lbl_UserName.setText("هنا يظهر الاسم")
        self.lbl_Phone.setText("هنا يظهر رقم الهاتف")
        self.lbl_Works.setText("هنا يظهر الوظيفه")
        self.grbInfo.hide()

        # Here is Clicked Button
        self.lblUsers.setText("عدد الاضافات: 0")
        self.btnSearch.clicked.connect(self.Search)
        self.btnAdd.clicked.connect(self.Add)
        self.btnUpdate.clicked.connect(self.Update)
        self.btnDelete.clicked.connect(self.Delete)
        self.btnExit.clicked.connect(self.LbLExit)

    def Search(self):
        if  self.txtPhone.text() == '':
            QMessageBox.question(self, 'الرسالة ', "عدم ترك المدخل فارغ",QMessageBox.Ok)
            return 0
        else:
            self.grbInfo.show()

    def Add(self):
        self.Add = QFrame()
        self.Add.resize(400,200)
        self.Add.setWindowTitle("Add Customer")
        self.Label = QLabel(self.Add)
        self.Label.setText("هنا يتم اضافة عميل")
        self.Label.resize(250,100)
        self.Add.show()

    def Update(self):
        self.Update = QFrame()
        self.Update.resize(400, 200)
        self.Update.setWindowTitle("Update Customer")
        self.Label = QLabel(self.Update)
        self.Label.setText("هنا يتم تحديث معلومات العميل")
        self.Label.resize(250, 100)
        self.Update.show()

    def Delete(self):
        self.Delete = QFrame()
        self.Delete.resize(400, 200)
        self.Delete.setWindowTitle("Delete Customer")
        self.Label = QLabel(self.Delete)
        self.Label.setText("هنا يتم حذف عميل")
        self.Label.resize(250, 100)
        self.Delete.show()
    def LbLExit(self):
        sys.exit(0)


if __name__ == '__main__':
    App = QApplication(sys.argv)
    Dialogs = Main()
    Dialogs.setWindowTitle('Customers Control')
    Dialogs.show()
    sys.exit(App.exec())


ونستكمل مع كيفية اضافة عميل للقاعدة وايضآ كيفية عرض العميل من خلال البحث


قمت بالتصميم بالـ Disgner PyQt5

فيما يخص AddUser

صورة التصميم لأضافة عميل




نقوم بعمل ملف جديد بأسم AddUser.py في المشروع

وهذا الكود الخاص بالملف


Python:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

from PyQt5.uic import loadUiType
import os,sqlite3

from tensorflow.python.ops.gen_dataset_ops import sql_dataset

PRO_ADDUSER,_ = loadUiType(os.path.join(os.path.dirname(__file__),'AddUser.ui'))

class AddUser(QMainWindow,PRO_ADDUSER):
    def __init__(self,parent=None):
        super(AddUser,self).__init__(parent)
        self.setupUi(self)

        # Here is Clicked Button
        self.btn_Cancel.clicked.connect(self.BtnCancel)
        self.btn_AddNew.clicked.connect(self.insertUserName)
        self.OpenImages.clicked.connect(self.OpenFiles)
        self.lblImages.setText('')


    # Here the Methods
    def BtnCancel(self):
        self.hide()

    def insertUserName(self):
        if self.txtNewUser.text() is '' and self.txtNewWork.text() is '' or  self.txtNewPhone.text() is '':
            QMessageBox.question(self,'Message','الرجاء عدم ترك الحقول فارغة',QMessageBox.Ok)
        else:
            self.name = self.txtNewUser.text()
            self.works = self.txtNewWork.text()
            self.phone = self.txtNewPhone.text()
            self.images = self.fileName
            self.db = sqlite3.connect('dbUser.db')
            self.con = self.db
            if self.con:
                self.cur = self.con
                self.cur.execute('insert into Usr(username,userworks,userphone,userimages) values (?,?,?,?)',(self.name,self.works,self.phone,self.images))
                self.cur.commit()
                self.cur.close()
                print('Insert Database')
            else:
                print('Disconnect Database')

    def OpenFiles(self):
        self.options = QFileDialog.Options()
        self.options |= QFileDialog.DontUseNativeDialog
        self.fileName, _ = QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()", "","All Files (*);;Text Files (*.jpg *.png *.gif)",options=self.options)
        if self.fileName:
            self.lblImages.setPixmap(QPixmap(self.fileName))

سأقوم بالتجربه



في محرك البحث سأبحث عن شخص من خلال رقم الهاتف فقط







بكذا انتهينا من كيفية اضافة بيانات للقاعده وعرض البيانات عن طريق البحث من خلال ادخال رقم الهاتف فقط

تبقى علينا فقط تحديث عميل حذف عميل واظهار عدد الاضافات في الواجهة الرئيسية


ملاحظه : قم بتحميل المشروع حتى يسهل عليك المتابعه لانني لم اقم بتصميم الواجهات يدويآ لانها تأخذ وقت لكتابتها

لتحميل المشروع

اتمنى للجميع التوفيق
 

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,345
الإعجابات
3,108
النقاط
198
الإقامة
Snap: with-305
شرح رائع جدا اخي

عندي سؤال
هل Designer PyQt5 مثل qt للسي بلس بلس ؟

نعم اخي العزيز هيا نفسها بالضبط نفس المكونات ونفس الدوال الخ ..

من يتعلم على PyQt5 سيتعامل بكل سهوله مع Qt في سي بلس بلس

وهذا ما اطمح اليه لاحقآ ان انتقل الى السي بلس بلس بما ان لدي خبره بالمستوى المتوسط في الـ ++C/C

لكن جل تركيزي على البايثون لأنني استخدمها في عمل سكربتات خاصه واريد ان اصمم مواقع من خلال البايثون فقط

اما الانتقال سيكون لأجل تصميم البرامج ان شاء الله بالسي بلس بلس مع واجهة Qt
 

Mariio

.:: مُراقب أقسام البرمجة ::.
rankrankrankrankrankrank
طاقم الإدارة
إنضم
1 مايو 2007
المشاركات
4,884
الإعجابات
4,435
النقاط
133
الإقامة
USA
نعم افضل شيء هوه تعلم البايثون والسي والجافا سكربت
بايثون وجافا للسكربتات و مواقع وغيرها وسي بلس بلس للدسكتوب
وبعدها تقدر تبرمج لكل المنصات والاجهزه
 

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,345
الإعجابات
3,108
النقاط
198
الإقامة
Snap: with-305
نعم افضل شيء هوه تعلم البايثون والسي والجافا سكربت
بايثون وجافا للسكربتات و مواقع وغيرها وسي بلس بلس للدسكتوب
وبعدها تقدر تبرمج لكل المنصات والاجهزه
كأنك تراقبني :)

انا اركز على بايثون والجافا سكربت من زمان لان هيا اللغات الاكثر طلبآ في السوق والاكثر انتاجيه بوقت قصير

السي بلس بلس لا مفر منها لابد يأتي يوم احتاجها

بالتوفيق لك
 

Mariio

.:: مُراقب أقسام البرمجة ::.
rankrankrankrankrankrank
طاقم الإدارة
إنضم
1 مايو 2007
المشاركات
4,884
الإعجابات
4,435
النقاط
133
الإقامة
USA
كأنك تراقبني :)

انا اركز على بايثون والجافا سكربت من زمان لان هيا اللغات الاكثر طلبآ في السوق والاكثر انتاجيه بوقت قصير

السي بلس بلس لا مفر منها لابد يأتي يوم احتاجها

بالتوفيق لك
ممكن لول
تمام ركز اول على تعلم بايثون 100% وانتقل للسي بلس بلس
من خلال تعلمك سي سوف تتعلم طرق الهندسه العكسيه والاسمبلي تصبح اسهل
لو وصلت للامسبلي وتعلمت سوف تصبح مبرمج وقتها :biggrin:

واصل مشوارك اخي
 

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,345
الإعجابات
3,108
النقاط
198
الإقامة
Snap: with-305
ممكن لول
تمام ركز اول على تعلم بايثون 100% وانتقل للسي بلس بلس
من خلال تعلمك سي سوف تتعلم طرق الهندسه العكسيه والاسمبلي تصبح اسهل
لو وصلت للامسبلي وتعلمت سوف تصبح مبرمج وقتها :biggrin:

واصل مشوارك اخي
سنواصل المشوار لما ننتهي من الواجهات سيكون تركيزي على المواقع فقط
على وصولي للسمبلي سيورثني الابناء لست محتاج الى السيمبلي لان لا اهتم بالانظمة وخفاياها
الطرق العكسيه بعض الاحيان لا تحتاج الى فهم السيمبلي سوى في طرق الاستغلال

ملاحظه : انا كرهه القرصنه بشكل عام لان تضررت منه سابقآ ولدي بصمه بقسم الشرطه

لا اريد القرصنه ولا السيمبلي ولا الهندسه العكسيه

اريد برمجة مواقع وبرامج وسكربتات خاصه فقط :)


الله كريم اتمنى لك التوفيق
 

Mariio

.:: مُراقب أقسام البرمجة ::.
rankrankrankrankrankrank
طاقم الإدارة
إنضم
1 مايو 2007
المشاركات
4,884
الإعجابات
4,435
النقاط
133
الإقامة
USA
سنواصل المشوار لما ننتهي من الواجهات سيكون تركيزي على المواقع فقط
على وصولي للسمبلي سيورثني الابناء لست محتاج الى السيمبلي لان لا اهتم بالانظمة وخفاياها
الطرق العكسيه بعض الاحيان لا تحتاج الى فهم السيمبلي سوى في طرق الاستغلال


ملاحظه : انا كرهه القرصنه بشكل عام لان تضررت منه سابقآ ولدي بصمه بقسم الشرطه

لا اريد القرصنه ولا السيمبلي ولا الهندسه العكسيه

اريد برمجة مواقع وبرامج وسكربتات خاصه فقط :)

الله كريم اتمنى لك التوفيق

سوف تحتاج الاسمبلي كثيرا
خصوصا اذا قدمت على وضيفه سوف تكون فرص عملك اكبر
 

Dr berhak

.:: المـُـراقـِــب العــــــامّ ::.
طاقم الإدارة
إنضم
18 أكتوبر 2013
المشاركات
8,250
الإعجابات
9,976
النقاط
173
أخي عبد الله شكرا لك

لكن لماذا لا تبدأ الدروس من الصفر

تحميل المشغلات ومحررات الأكواد وتثبيتها حتى يتابع الجميع الدروس ويطبقونها ؟؟
 

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,345
الإعجابات
3,108
النقاط
198
الإقامة
Snap: with-305
أخي عبد الله شكرا لك

لكن لماذا لا تبدأ الدروس من الصفر

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

لكن سأترك المجال حتى من يريد المشاركه او المساعده سنكون بخدمته لا اريد ان اضع شيء الا لمن يطلب او يبحث عن اضافة

لاني وضعت مكتبات في مواضيعي السابقه عن تثبيت PyQt5 و PyInstaller و wgat

من يهتم بهذي اللغة بكل تأكيد سيكون منصب مكتبات عديده للبايثون بما فيها مكتبة PyQt5

نترك المجال للطلب افضل
 

Dr berhak

.:: المـُـراقـِــب العــــــامّ ::.
طاقم الإدارة
إنضم
18 أكتوبر 2013
المشاركات
8,250
الإعجابات
9,976
النقاط
173
فكرتك جميلة جدا نعم لكن الترتيب بالنسبة للمبتدأ يكون أكثر فائدة

وبالطبع سينتج عنه الكثير من المبرمجين

وجزاك الله كل خير
----------------------------------------------
 

RaBsAh

Beginner Developer
rank
إنضم
9 فبراير 2018
المشاركات
77
الإعجابات
72
النقاط
18
الإقامة
Kingdom of Saudi Arabia
وعليكم السلام ورحمة الله و بركاته

يا غالي يا ليت تعطينا موضوع عن صنع المشروع, هناك أكواد كثيرة لم افهمها

وللأن لم ارى شرح عن كيف صنع مشروع مثل الذي فوق

أغلبهم يشرحون ب (IDLE) Python GUI أو PyCharm
 

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,345
الإعجابات
3,108
النقاط
198
الإقامة
Snap: with-305
وعليكم السلام ورحمة الله و بركاته

يا غالي يا ليت تعطينا موضوع عن صنع المشروع, هناك أكواد كثيرة لم افهمها

وللأن لم ارى شرح عن كيف صنع مشروع مثل الذي فوق

أغلبهم يشرحون ب (IDLE) Python GUI أو PyCharm

هنا وضعت المتطلبات

Python - متطلبات لغة بايثون

بالتوفيق لك
 

LÖWE

Active DeveloPer
rankrankrankrank
إنضم
10 مارس 2011
المشاركات
1,543
الإعجابات
980
النقاط
113
يا ليت تعمل لنا دوره حيه على اليوتيوب بخصوص برمجه بايثون الكائنات لسطح المكتب لأن اليوتيوب العربي يفتقر هذه الاشياء .

شاكر لك استاذي الكريم .
 

X0R

ExpErt DeveloPer
rankrankrank
إنضم
10 يناير 2018
المشاركات
698
الإعجابات
720
النقاط
93
الإقامة
المغرب
الله يسلمك على المجهود الرائع موضوع جميل شكرا لك أجرب المشروع ولي عودة بالأسئلة
بس عندي سؤل بحكم تجربك مالأفضل بالنسبة للواجهات البايتون يدعم الكتير من الواجهات
 

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,345
الإعجابات
3,108
النقاط
198
الإقامة
Snap: with-305
الله يسلمك على المجهود الرائع موضوع جميل شكرا لك أجرب المشروع ولي عودة بالأسئلة
بس عندي سؤل بحكم تجربك مالأفضل بالنسبة للواجهات البايتون يدعم الكتير من الواجهات
العفو اخي العزيز
الافضل استخدام PyQt5
امكانياتها عاليه وسهلة الاستخدام

بالتوفيق لك
 
الإعجابات: X0R

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,345
الإعجابات
3,108
النقاط
198
الإقامة
Snap: with-305
يا ليت تعمل لنا دوره حيه على اليوتيوب بخصوص برمجه بايثون الكائنات لسطح المكتب لأن اليوتيوب العربي يفتقر هذه الاشياء .

شاكر لك استاذي الكريم .
على حسب الظروف اخي العزيز
 
الإعجابات: LÖWE

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 1 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل