انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: aliboy در 18 فروردین 1392، 11:05 بظ
-
سلام
:)
دوستان که تجربه دارن چند سوال داشتم:
1-کیوت بر پایه زبان c یا c++ هست؟
2-برنامه های نوشته شده توی زبان C با QT هم قابل اجرا هستن؟
3-توانایی اتصال به چه پایگاه داده هایی رو دارد؟
کسی از دوستان اطلاعات بیشتری هم داشته باشه ممنون میشیم
پیشاپیش تشکر
-
۱− Qt بر پایه C++ هست.
۲−درست نفهمیدم. Qt که زبان برنامه نویسی یا کامپایلر نیست فقط یک سکو بر پایه C++ است. ولی اگه منظورتون اینه که ار کتابخونه هایی که به زبان C نوشته شده اند میشه در Qt استفاده کرد، بله میشه.
۳−با جستجو در Documentation به اینا رسیدم:
- IBM DB2 (version 7.1 and above)
- Borland InterBase
- MySQL
- Oracle Call Interface
- Open Database Connectivity (ODBC) - Microsoft SQL Server and other ODBC-compliant databases
- PostgreSQL (versions 7.3 and above)
- SQLite version 2
- SQLite version 3
- Sybase Adaptive Server (Note: obsolete from Qt 4.7)
همچنین می تونید برای بانک اطلاعاتی های دیگه خودتون درایور بنویسید و به Qt بدید.
-
سلام
تشکر
:)
Qt بر پایه C++ هست
یعنی کدهای توسعه داده شده به زبان سی ++ هست،حالا می خواستم ببینم که میشه از زبان سی بجای سی ++ برای کد نویسی استفاده کرد.
-
سی++ که بهتره ،برای استفاده از کیوت نیاز به شی گرایی و ارث بری و... می باشد که فکر کنم سی نداره
-
این gtk بعد چیه؟ python رو ساپورت می کنه چه برسه به c
-
Qt یا کیوت و gtk و بوست و ... یکسری کتابخانه هستند (معادل dll در ویندوز که مهمترین کتابخانه اونها کتابخانه گرافیکیه
Qt برای بیشتر زبانهای برنامهنویسی پورت شده ولی تا اونجایی که من میدونم C جز اونها نیست
طریقه پورت کردن بدین شکل هستش که میان و فایلهای سرآیند رو برای استفاده از اون زبان برنامه نویسی بازنویسی میکنن و کاری به خود کتابخانه ندارن
کیوت متاسفانه چون پیش از استاندارد شدن C++ نوشته شده بیشتر جنبههای ST و STL رو خودشون نوشتن به همین خاطر ابتدا دستورات کیوت به C++ قابل فهم برای کامپایلر (معمولا gcc و microsoft visual c++) تبدیل میشه سپس اونرو میشه کامپایل کرد به همین دلیل از gtkmm که بر پایه gtk+ هست کندتره ولی امکانات بسیار بیشتر و محبوبیت بسیار بالاتری داره
کتابخانههای کیوj به چندین بخش تقسیم میشن که یکی از اونها QtSQL هست و امکان استفاده از همه بانکهای اطلاعاتی محبوب رو داره
کیوت هیچ چیزی از .Net مایکروسافت کم نداره البته اگه زیادتر نداشته باشه
ولی برنامه نویسی با کیون نسبت به gtkmm و .Net سختتره و همچنین پیچیدگی بالاتری داره و به هیچ عنوان به شسته رفتگی و سادگی C# نیست به همین خاطر برنامه نویس های C# به شدت با اون بر به مشکل خواهند خورد (مثل خود من)
-
کیوت متاسفانه چون پیش از استاندارد شدن C++ نوشته شده بیشتر جنبههای ST و STL رو خودشون نوشتن به همین خاطر ابتدا دستورات کیوت به C++ قابل فهم برای کامپایلر (معمولا gcc و microsoft visual c++) تبدیل میشه سپس اونرو میشه کامپایل کرد
هنوز نسخه ی جدیدی نداده که این را درش برطرف کرده باشند
-
هنوز نسخه ی جدیدی نداده که این را درش برطرف کرده باشند
این یک باگ نیست یک محدودیت محیطیه که هیچگاه برطرف نخواهد شد مگر اینکه همه تفاوتها رو بخوان اصلاح کنن که این باعث ناسازگاری کامل نسخههای پیشین کیوت میشه و یجورایی باید همه کسایی که کیوت کار میکنن قسمتی از اون رو دوباره تحصیل کنن
من که هیچ امیدی به نزدیکی بیشتر کیوت و سی پلا ندارم دستکم در نسخه 5 کیوت و سی پلاس اکس۱۱ که تفاوتها نه تنها کم نشده بلکه بیشتر هم شده البته سرعت کیوت بهتر از پیش شده
-
میشه این چیزی که گفتید رو بیشتر توضیح بدید و ازش مثال بزنید؟:
کیوت متاسفانه چون پیش از استاندارد شدن C++ نوشته شده بیشتر جنبههای ST و STL رو خودشون نوشتن به همین خاطر ابتدا دستورات کیوت به C++ قابل فهم برای کامپایلر (معمولا gcc و microsoft visual c++) تبدیل میشه سپس اونرو میشه کامپایل کرد
به نظر من از اول نوشتن STL نه تنها باعث کند شدن نمیشه بلکه چون بهینه تر نوشته شده سرعت رو بالا تر هم می بره. اون قسمت که گفتید دستورات کیوت رو به c++ تبدیل کنه رو نفهمیدم. اگه منظورتون مفهوم SIGNAL و SLOT هست که Overhead بسیار کمی داره و قابل اندازه گیری نیست تازه در Qt 5 هم یک نوع جدید از ارتباط SIGNAL وSLOT معرفی شده که کاملا C++ ای هست و هیج Overhead ای نداره. در ضمن در کیوت میشه به جای STL خود Qt از STL خود C++ استفاده کرد ولی چون STL کیوت امکانات بسیار بیشتری داره معمولا کسی این کارو نمی کنه.
پی نوشت: به نطر من که Qt پیچیدگی نداره. البته من تجربه کار با زبان های غیر استانداردی مثل C# رو ندارم.
-
منظور من با حرف شما تفاوتی نداره بجز اینکه شما میگید اورهد بسیار پایینه
منظور من از اول نوشتن STL سی پلاس نبود بلکه قسمتهایی از Qt بود که حالا در STL وجود داره.
مثال دیگه نمیخواد آرایه دندانه دار - متغیر رشتهای (البته متغیر رشتهای STL از utf8 پشتیبانی نمیکنه و عملا بی مصرفه) - پشته - صف - همه تمپلیتها و ...
حتی در موردی اومدن ارٍث بری کلاس رو باز نویسی کردن (دقیقا یادم نمییاد که کدش چی بود ولی اگه مصر هستید پیداش میکنم)
همه این تغییراتی که کیوت در سی پلاس ایجاد کرده عملا اون رو به یک زبان دیگه تبدیل کرده که برای کامپایل توسط کامپایلرهای استاندارد باید ابتدا به سی پلاس تبدیل بشه که این توی برنامههای بزرگ زمان قابل ملاحضهای میشه البته برنامه که کامپایل بشه این دیگه نمیتونه مشکل محسوب بشه
-
تشکر از مشارکت همه دوستان
پس باید قید برنامه نویسی با زبان سی رو در QT بزنیم.؟!
-
C و ++C اونقدرها هم با هم فرقی ندارن ها! خیلی راحت میتونی ++C رو جایگزین C کنی
-
با هر جفتشون کار کردم.
سوالم یه چیز دیگه اس.