PDA

View Full Version : حرفه ای: چند مشکل در مورد کیوت



armintirand
یک شنبه 28 شهریور 1389, 12:47 عصر
سلام
اول اینکه تو برنامه هایی که از دیتابیس استفاده میکنیم کیوت ارور میگیره ، مثل اینکه دیتابیس نصب نیست چطوری دیتابیس کیوت رو نصب کنیم؟
دوم اینکه اگه ما یه فایل مثلا با فرمت .z داریم چطور میتونیم برنامه ای بنویسیم که اونو بتونه باز کنه؟چون من تومثالهای یک کتاب یه برنامه صفحه گسترده میساخت و با فرمت .sp ذخیره میکرد که مثلا با text editor باز نمیشد میخاستم بدونم یه فایل ناشناس رو چطور میتونیم باز کنیم؟
فعلا همینا رو یادبگیرم تا بعدیها رو بپرسم.
ممنون

rosenth
یک شنبه 28 شهریور 1389, 21:40 عصر
پلاگین های دیتابیس Qt هنگام اجرای برنامه باید لود بشن.فایل پلاگین دیتابیسی که ازش استفاده میکنی رو توی مسیر پروژه ت کپی کن. برای لود پلاگین میتونی از دستور زیر استفاده کنی:


QCoreApplication::addLibraryPath ( "path of plugin" )

armintirand
دوشنبه 29 شهریور 1389, 13:47 عصر
دوست عزیز یعنی من که sdk کیوت رو نصب کردم دیتابیس ها رو هم دارم؟
به سوال دومم جواب ندادید؟
میشه یه نمونه پروژه بسیار کوچیک از دیتابیس برام بذارید تا نحوه کارو بهتر بدونم؟
ممنون

rosenth
دوشنبه 29 شهریور 1389, 14:26 عصر
دیتابیس sqlite نیاز به نصب نداره. دیتابیس mysql باید نصب بشه. در هردوحالت،Qt برای ارتباط با این بانک ها از یک سری پلاگین هایی که توی مسیرنصب Qt هستند استفاده میکنه.مثلا Qt/plugins/sqldrivers
تابع اتصال به دیتابیس :


void MainWindow::createConnection()
{
db= QSqlDatabase::addDatabase("QSQLITE");
QString MainPath=QDir::currentPath();
MainPath.append(QDir::separator()).append("database").append(QDir::separator()).append("yeganeh.sqlite");
MainPath = QDir::toNativeSeparators(MainPath);
db.setDatabaseName(MainPath);
if (!db.open()) {
QMessageBox::critical(0, qApp->tr("Cannot open database"),
qApp->tr("Unable to establish a database connection.\n"
"This example needs SQLite support. Please read "
"the Qt SQL driver documentation for information how "
"to build it.\n\n"
"Click Cancel to exit."), QMessageBox::Cancel);

}
}


ولی یکبار فراخوانی این تابع کافیه تا در بقیه فرم های برنامه هم به دیتابیس متصل باشی، مگه اینکه دیتابیس رو عوض کنی. یعنی در دستورات زیر لازم نیست حتما شی db رو به query ارسال کنید.


QSqlQuery query;
if(! query.exec("DELETE FROM person WHERE ID="+ID))
QMessageBox::warning(this,"error",query.lastError().databaseText());
else
QMessageBox::information(this,"Removed","",QMessageBox::Ok);

---
فایل ناشناس رو که نمیشه به راحتی خوند. باید با فرمتی که خودت تعیین کردی ازش استفاده کنی. بگو دقیقا با فایل میخوای چکار کنی.

.:saeed:.
سه شنبه 30 شهریور 1389, 15:44 عصر
سلام
در مورد سوال دومت یکم بیشتر بگم که باید همون طور که دوستمون گفت فرمت و نحوه ذخیره سازی رو بدست بیاری که در مورد فایل های معروف تو اینترنت می تونی پیدا کنی . مثلا برای خوندن فایل های .ai که یه نوع فایل وکتوره که تو گرفیک کامپیوتری کاربرد داره من یه متن 150 صحفه ای برا خوندنش از adobe گرفتم . اما مثلا فایلی مثلا با پسوند ota که همون تصاویر معروف sms هستند با یک صفحه که در wikipedia هستش قابل خوندن و نوشتن هستند. در مورد سوال اولت هم اگه مشکل دیگری داری در خدمتم.
فعلا:لبخندساده:

armintirand
چهارشنبه 31 شهریور 1389, 17:44 عصر
دوستان ممنون از راهنماییتون.بذارید کمی واضحترجلوبریم برای مثالی که گذاشتید اگه ممکنه 1 پروژه که شامل فایل های cpp و هدر و pro و در حد خیلی ساده با همون sqlite که درایور نمیخواد برام بذارید.
درمورد سوال دوم فرض کنید یه مجموعه آفیس نوشتیم که برای خودش فرمتهای خاصی داره حالامیخواهیم مثلا توی word فرمت doc ماکروسافت رو هم بازکنیم و ویرایش کنیم یا یک نرم افزار تو مایه های فوتوشاپ نوشتیم و میخواهیم فرمت psd فوتوشاپ رو باز کنیم یا ویرایش کنیم و اگه شرکت مورد نظر در مورد فایلش اطلاعاتی نده چی میشه کرد .لطفا در مورد این دو فرمت توضیحاتی که شرکت های مورد نظر اگه دادن برای باز کردنشون تو برناممون توضیح بدید.
ممنون

armintirand
جمعه 02 مهر 1389, 09:51 صبح
ببینید بعضی چیزا هست که براش برنامه ای موجو نیست مثلا تو لینوکس برنامه ای برای پخش فرمت amr نیست و اگه بخواییم براش یک کودک بنویسیم یا یک برنامه که پخشش کنه باید سماق بمکیم یا راهی هست؟
لطفا مثال برای sqlite هم فراموش نشه.

rosenth
جمعه 02 مهر 1389, 18:37 عصر
این کار برنامه نویسان حرفه ای هست که مثلا پخش کننده amr بنویسن و البته توی این زمینه هم کوتاهی نکردن و هر برنامه ای که فکرشو بکنی واسه لینوکس نوشتن. ولی انگاربا سرچ کردن زیاد حال نمیکنی رفیق D:
http://ubuntu-ky.ubuntuforums.org/showthread.php?p=7295228
برای sqlite ،این برنامه رو با Qt creator باز کن : http://forum.ubuntu.ir/index.php/topic,13824.0.html

armintirand
شنبه 03 مهر 1389, 17:41 عصر
ممنون از لينك هايي كه داديد مثال Qsqlite رو بررسي ميكنم و اگه مشكلي داشتم ميپرسم ولي مشكل amr يا psd نيست مشكل من اينه كه يكي يه فرمت براي برنامش ساخته و هيچ اطلاعي درباره اون نداده حالا من ميخوام تو برنامه خودم از اون استفاده كنم راه كار چيه؟ فكر كنيد چيزي كه اپن سورس نيست رو ميخواييم اپن سورس كنيم!!!!!!!!!!!!!!!!!!!!!!!!البته شوخي بود چوت كپي رايتو اين حرفا!! ولي بالاخره بايد بتونيم مثلا اسممونو ميخواييم بذاريم برنامه نويس.

.:saeed:.
یک شنبه 04 مهر 1389, 16:05 عصر
سلام
به نظر عقل ناقص بنده هیچ راه دیگه ای وجود نداره ، اگه فایل خیلی مهم و شناخته شده باشه و یا از یک شرکت معتبر به احتمال خیلی زیاد شما می تونیدبا جستجو راه حل خوندن و نوشتنشو بدست بیارین.اما اگه نباشه من یکی که می گم نمیشه چون اصلا نمیتونم راه حلی براش تصور کنم ، من چطور میتونم فرمتی که به ذهن شما رسیده ( اگه هم که فایل مهم باشه دیگه بدتر ) رو حدس بزنم.این نظر من بود ، بقیه هم خوشحال میشیم این فروم یخ زده Qt رو فعال کنن.
من یکی که تا حالا به این مشکل برنخوردم اگه که فایل معروف باشه قابل یافتنه .
مثلا من فایلهای ota, ai, eps, doc رو Format specification رو پیدا کردم که از قضا برای فایلهای معتبری مثل doc, ai , eps تعداد صفحات توضیحات در مورد فرمت بیش از 100 صفحه است ، حالا شما چطور یه راه حلی می خوای که این دویست صفحه ( مثلا برای doc ) رو حدس بزنه من که راه حلی به ذهنم نمیرسه!:متفکر:

armintirand
دوشنبه 05 مهر 1389, 19:08 عصر
در مورد فرمت دارم چند تا برنامه مینویسم وقتی لازمم شد حتما ازتون راهنمایی میگیرم.
در مورد دیتابیس qsqlite قبلا اون برنامه رو تو لینوکس اوبونتو تست زده بودم و درست کار میکرد ولی ایندفعه که تو ویندوز تست زدم به دیتابیس ارور داد.
الان دارم یه ماشین حساب مینویسم دارم از لیست پیوندی توش استفاده میکنم ولی ظاهرا لیست پیوندی تو کیوت مشکل داره یا تستش کردید؟؟؟؟؟

armintirand
پنج شنبه 08 مهر 1389, 16:06 عصر
من این تاپیک رو تا یادگیری کامل کیوت ادامه میدم به شرط اینکه دوستان هم کمک کنن.
به نظر شما من کدوم دیتابیس رو یاد بگیرم و آیا برای کار با دیتابیس تو کیوت لازمه که خود اون دیتابیس رو هم بلد باشم؟مثلا من همین دیتابیس Qsqlite رو بلد نیستم.

.:saeed:.
جمعه 09 مهر 1389, 01:34 صبح
با سلام به شما دوست عزیز .
تا اونجایی که من کار کردم و میدونم دیتا بیس ها از یک زبان به نام SQL استفاده می کنند ، خوب اگه شما مثلا کار با Mysql که بیشتر رواج داره رو یاد بگیری مشکلی برا کار با sqlite نداری :
SQL is a standard language for accessing databases.
With Sql You can manipulate data in :
MySQL, SQL Server, Access, Oracle, Sybase, DB2, and other database systems.
، پس بهتری بری سر یادگیری Sql که اینجا (http://www.w3schools.com/sql/default.asp) نقطه خوبیه برا شروع . دستور های پر کاربرد معمولا بین دیتابیس ها یکسانه ولی ممکنه یه سیستم مدیریت دیتا بیس دستورات دیگری هم به sql خودش اضافه کنه . اما اصل یکیه.در ضمن چند تا دستور پر کاربرد بیشتر نیست که شما برای اکثر برنامه ها به اونا نیاز داری.
برا راه افتادن در دیتابیس و مدیریت اون هم توصیه میکنم phpMyAdmin رو کامپیوترت داشته باشی . این برنامه میاد تمام دیتابیس های شما در Mysql و تمام جدول های درون آنها و فیلد های اونارو به صورت فایل های html براتون نمایش میده ، میتونید جدول اضافه کنید ، دیتابیس اضافه کنید ، رکورد اضافه کنید ، query بنویسید و ... . فکر کنم برا sqlite هم باید باشه نمی دونم.
موفق باشین

armintirand
جمعه 09 مهر 1389, 20:12 عصر
دوست عزیز من این برنامه شیر رو قبلا تو اوبونتو تست کرده بودم ولی تو ویندوز کار نمیکنه یعنی کامپایل شد ولی در اجرا به دیتابیس ارور میداد؟
یک سوال دیگه اینکه آیا میشه تو کیوت میشه از لیست پیوندی استفاده کرد؟

armintirand
جمعه 16 مهر 1389, 11:57 صبح
سلام دوستان متاسفانه بازم این تاپیک خوابید ولی من همچنان ادامه خواهم داد.
میشه بگید برای یادگیری دیتابیس که بتونم تو کیوت ازش استفاده کنم چه کتابی مناسبه؟
لطفا جواب سوالهای قبلیم رو هم بدید.
یک پیشنهاد هم دارم البته به موقع خودم عملی میکنم یک بخش برای کسانی که مثل من میخوان با فایلهای مختلف کار کنن باز کنیم و اطلاعاتی که در مورد سایت موجوده رو انجا قرار بدیم تا مرجعی برای این کار باشه ولی نمیدونم تاپیکش مربوط به کدوم بخش میشه؟
ممنون

rosenth
یک شنبه 18 مهر 1389, 13:27 عصر
لیست پیوندی دوطرفه = QList
برای مقایسه کاربرد انواع لیست ها ،لطفا به مستندات کیوت مراجعه کنید.
***
خطای دیتابیس احتمالا واسه اینه که توی مسیردیباگ برنامه، فایل دیتابیس رو کپی نکردین
***
برای یادگیری دیتابیس، به مثال های شیرین SDK Qt مراجعه کنید.