خانه برنامه نویسی پروژه برنامه نویسی Qt و اتصال به دیتابیس SqlLite – قسمت اول
پروژه برنامه نویسی کار با دیتا بیس در محیط Qt

پروژه برنامه نویسی Qt و اتصال به دیتابیس SqlLite – قسمت اول


۱۹ فروردین ۱۳۹۸
رضا احمدی
1,239 بازدید
دسته بندی : c++ , Qt creator , برنامه نویسی

در این  پروژه می خواهیم برنامه ای بنویسم که مشخصات تعدادی از کاربران را در دیتابیس ذخیره کنیم و آن ها را نمایش دهیم.این برنامه قابلیت افزودن , حذف و ویرایش کاربران باید داشته باشد.

کلاس های مورد نیاز:

در این پروژه به کلاس های QSql,QSqDataBase,QsqlQuery نیاز داریم برای این منظور کافی است QtSql را به پروژه اضافه کنیم ( #include  <QtSql> ) .

برای استقاده از کلاس های دیتابیس نیاز است ابتدا در فایل .pro پروژه عبارت زیر را وارد کنیم:

 QT +=sql

سایر مشخصات فایل .pro  :

QT += core gui
QT += widgets
CONFIG += c++11
QT +=sql
greaterThan(QT_MAJOR_VERSION, 5): QT += widgets

طراحی رابط کاربری :

وارد قسمت طراحی فرم شوید و فرم زیر را در ui پروژه وارد کنید:

طراحی رابط کاربری برنامه کار با دیتا بیس sqlite در محیط Qt
طراحی رابط کاربری برنامه کار با دیتا بیس sqlite در محیط Qt

و استایل شیت زیر را به فرم اضافه کنید:

  1. QWidget{font-size:14px;}
  2.  
  3. QWidget#centralWidget{background:white;}
  4.  
  5. QPushButton{
  6. background:#03dac6;
  7. color:white;
  8. border:0px;
  9. border-radius:10px;
  10. min-height:20px;
  11. min-width:30px;
  12. padding:5px;
  13. }
  14.  
  15. QPushButton:hover{
  16. background:#41cd52;
  17. }
  18.  
  19. QLineEdit{
  20. border:1px solid gray;
  21. border-radius:8px;
  22. font-size:14px;
  23. min-height:25px;
  24. }
  25.  
  26. QLineEdit:focus{
  27. border:1px solid #03dac6;
  28. border-radius:4px;
  29. }
  30.  
  31. QGroupBox{
  32. background:lightgray;
  33. border:0px;
  34. font-weight:bold;
  35. color:white;
  36. border-radius:10px;
  37. }
  38.  
  39. QTableView{
  40. border:2px solid gray;
  41. }

کار با دیتابیس :

دیتابیس یا پایگاه داده مجموعه ای از اطلاعات یک پارچه می باشد که به آسانی قابل دستر و ویرایش و مدیریت می باشد. از معروفترین پایگاه های داده می توان به MySql,Oracle,SQLite,… اشاره کرد.

در پایگاه های داده اطلاعات را درون جدول ها ذخیره میکنیم هر جدول شامل ستون ها و سطر هایی است . برای مثال در برنامه ای که ما میخواهیم بنویسیم این دیتا ها را درجدول زیر ذخیره می کنیم:

table name: Users

Phone age Lname Fname id
09379206787 25 Ahmadi Reza 1
09123456789 28 Mohammadi Ali 2
09111111111 22 Irani Mohsen 3

هر دیتابیس می تواند شامل چندیل جدول باشد . برای مثال جدول کاربران؛ جدول مدیران، جدول نامه ها , … .

برای کار با دیتابیس نیاز است ابتدا کانشکنی بین نرم افزار و برنامه برقرار کنیم . بدین منظور می بایست از یک شی کلاس QSqlDatabase ایجاد کنیم و مشخصات یک دیتابیس را به و نوع آن را به این شی بدهیم سپس آن دیتا بیس را باز کنیم.

دیتابیس هایی که کیوت پشتیبانی میکند به شرح زیر است :

Driver name DBMS
QDB2 IBM DB2 (version 7.1 and above)
QIBASE Borland InterBase
QMYSQL MySQL
QOCI Oracle Call Interface Driver
QODBC Open Database Connectivity (ODBC) – Microsoft SQL Server and other ODBC-compliant databases
QPSQL PostgreSQL (versions 7.3 and above)
QSQLITE2 SQLite version 2
QSQLITE SQLite version 3
QSYMSQL SQLite version 3 for Symbian SQL Database
QTDS Sybase Adaptive Server Note: obsolete from Qt 4.7

اگر نام شی را m_db بگذاریم تابع کانشکن ما به شرح زیر است این تابع از نوع بولین می باشد .

  1. bool zxMain::createConnection()
  2. {
  3.     m_db= QSqlDatabase::addDatabase("QSQLITE");
  4.     m_db.setDatabaseName("mydb");
  5.     //m_db.setConnectOptions();
  6.     if(!m_db.open())
  7.     {
  8.         qDebug()<<"An error on opening database : " <<m_db.lastError();
  9.         return false;
  10.     }
  11.     return true;
  12. }

در متد addDataBase می بایست نوع دیتابیس (درواقع درایور دیتابیس) را مشخص کنیم توجه نمایید این نامها در جدول بالا آورده شده اند.

در متد setDatabaseName() میبایست ادرس فایل دیتا بیس را بدهیم. اگر در این آدرس درست باشد ولی فایلی وجود نداشته باشد یک فایل جدید ایجاد میکند. برای مثال در اینجا گفتیم در کنار جایی که برنامه اجرا می شود ( یعنی د پوشه دیباگ برنامه ) یک دیتابیس به نام mydb ایجاد کن.(میتوانستیم نام فایل را مثلا mydb.db یا mydb.sqlite بگذاریم که هنگامی که با این فایل در ویندوز مواجه می شویم بدانیم این یک دیتا بیس است).

حال گفتیم اگر باز کردن دیتا بیس ناموفق بود یک لاگ به ما بده و مقدار fasle را برگردان. واگه با موفقیت باز شد مقدار true را برگردان.

ادامه دارد . .

مطالب مرتبط

 دیدگاهتان را بنویسید   

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

0 دیدگاه ارائه شده برای "QSqlTableModel – پروژه برنامه نویسی Qt کار با دیتابیس sqlite"

  1. Avatar محمد گفت:

    دمت گرم واقعا مفید و کامل بود
    اجرتون با الله تعالی

  2. Avatar siavash گفت:

    آقا دمت گرم چرا ادامه نمیدی؟

    1. رضا احمدی رضا احمدی گفت:

      قربونت.ادامه داره ولی فعلا وقت نوشتن ندارم….

  3. Avatar احمدرضا گفت:

    سلام وقتتون بخیر من دانشجو هستم
    برای امتحان پایان ترم گفتن که ۲ تا پروژه باعنوان file editorو chatبا کیوت ارائه بدیم ممنون میشم راهنمایی کنین

    1. رضا احمدی رضا احمدی گفت:

      سلام
      صفحه زیر میتونه راهنمای خوبی برای شما باشه.
      WIP-How to create a simple chat application

      موفق باشید.

  4. Avatar کسری بخشایی گفت:

    سفارش پروژه – برنامه نویسی
    نام و نام خانوادگی : کسری بخشایی
    تلفن : ۰۹۳۹۷۹۴۱۵۸۸
    ایمیل :ksrbakhshaei1376@gmail.com


    plants and zombie

    هزینه پیشنهادی: ۲۰۰۰۰۰ تومان – زمان پیشنهادی ۱ هفته
    file:https://mrzx.ir/wp-content/uploads/2020/08/project.pdf

  5. Avatar جمشیدیان گفت:

    سلام. میشه لطفا فایل شبیه سازی با ادوات الکترونیکی (فایل پروتئوس یا التیوم) این پروژه را برام بفرستید؟ خواهش میکنم، احتیاج دارم

    1. رضا احمدی رضا احمدی گفت:

      با سلام
      شماتیک مدار بصورت کامل توضیح داده شده . اونو توی پروتئوس رسم کنیدو و اجرا کنید .

  6. Avatar ALI REZAIE گفت:

    سفارش پروژه – برنامه نویسی
    نام و نام خانوادگی : ALI REZAIE
    تلفن : ۰۹۳۵۹۳۰۸۰۸۳
    ایمیل :alirfabad@gmail.com


    Qt login by google acount
    سلام و عرض ادب… یک لاگین میخام به gui اضافه کنم… البته با استفاده از گوگل اکانت… داخل نرم افار از یک api گوگل استفاده کردم قلش هر کاربر باید لاگین کنه… بعد اینکه لاگین کرد یا عکسش یا اسمش داخل تولبار نشون داده بشه…
    هزینه پیشنهادی: تومان – زمان پیشنهادی ۱ هفته
    file:

  7. Avatar الی گفت:

    عالی بود ممنون

  8. Avatar الی گفت:

    سلام من میخوام این پروژه رو بسازم اما نمی تونم بفهمم بعضی قطعات مثل J7 کارش چی هست؟ و اصلا چه قطعه ای باید بخرم. ممنون میشم راهنماییم کنید

    1. رضا احمدی رضا احمدی گفت:

      سلام
      قطعه j7 یک کانکتور پین هدر نری است که به پورت B میکرو وصل شده. این قطعه در این پروژه کاربردی ندارد و فقط برای استفاده های ممکن در آینده بر روی برد قرار گرفته تا اگر نیاز به تغییر جزیی در پروژه بود برنامه میکرو را تغییر داده و از این پورت استفاده شود.
      پین هدر 40*1 صاف نری

  9. Avatar الی گفت:

    سلام ممنون از جوابتون
    متاسفانه دکمه پاسخ در سایتتون کار نمی کنه و به خاطر این تشکر از جوابتون رو در یک دیدگاه دیگر نوشتم.