رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

نیما غراب

کاربـــر عـــــادی
  • تعداد ارسال ها

    6
  • تاریخ عضویت

  • آخرین بازدید

    هرگز

اعتبار در سایت

0 خوب

درباره نیما غراب

  • تاریخ تولد تعیین نشده

اطلاعات شبکه‌ای

موقعیت

  • شهر
    مشهد
  1. سلام بر دوستان گرامی. فرض کنین ما در برنامه ای که با زبان C++ قراره نوشته بشه محاسبات ماتریسی داریم که بزرگ و زمانبر هست و برای انجام اون از کتابخانه Eigen استفاده میکنیم. چنانچه بخوایم پس از اتمام محاسبات ماتریسی، نتیجه رو در رابط کاربری که داریم نمایش بدیم اعم از نمایش به شکل Spreadsheet و یا رسم روی نمودار و... مجبوریم اشیا ساخته شده با Eigen رو به آرایه های مورد استفاده در Qt نظیر QVector یا QList و... تبدیل کنیم. حالا اگر تکرار این محاسبات زیاد باشه این تغییر نوع اشیا کاملا روی سرعت اجرای برنامه تاثیر میزاره حالا زبان C++ برای حل این نوع از مشکلات که برنامه نویس رو مجبور به تغییر نوع متغیر برای استفاده در هر نوع کتابخانه میکنه چه فکری کرده؟ آیا راهی هست که بشه مستقیم بین این کتابخانه ها ارتباط برقرار کرد به طوری که: نیاز به تغییر در کد منبع هیچ یک از کتابخانه‌ها نباشه چون این کار زمان بر هست و نیاز به تجربه بالایی در کار با اون کتابخانه خاص داره و قراره محتویات اون دستکاری و قاعدتا کتابخانه مجددا به خاطر اون تغییر، همگردانی بشه. آیا از وراثت میشه برای یکپارچه سازی بین اشیا موجود در کتابخانه های مختلف استفاده کرد؟ یا راه حل دیگه ای وجود داره؟ مثال Eigen و Qt صرفا برای بیان بهتر این مشکل آورده شد. سپاس گزارم.
  2. نیما غراب

    سلام. این موضوع رو مطالعه کردین؟
  3. نیما غراب

    سلام. چنانچه در تنظیمات برنامه های مختلف تغییری ایجاد کنین به شما پیامی مبنی بر بازگشایی مجدد برنامه به منظور لحاظ شدن تغییرات جدید میده. این به این معنیه که خیلی از تنظیماتی که در برنامه ها انجام میدیم در فایلی در یکی از شاخه های برنامه بنا به صلاح دید سازندگان برنامه ذخیره میشه و هر بار که برنامه باز میشه اطلاعات از اون فایل خونده و در فصل جاری برنامه لحاظ میشه. (مثلا بازیابی اندازه های پنجره های مختلف در برنامه در آخرین بار استفاده و...) شما میتونین اطلاعاتی که مد نظرتون هست رو در فایل مخصوصی در مسیر برنامه یا هر جایی که صلاح میدونید ایجاد کنید و اطلاعات آرایتون رو داخلش ذخیره کنین. به عنوان مثال داریم: #include <QCoreApplication> #include <QFile> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QStringList text; QFile file("text.txt"); if (file.open(QIODevice::ReadOnly)) { QTextStream in(&file); while (!in.atEnd()) { text << in.readLine(); } file.close(); qDebug() << text << '\n'; }else{ if (file.open(QIODevice::WriteOnly)){ QTextStream out(&file); out << "Hello!\n" "Settings are saved here\n" "Goodbye!\n"; } qDebug() << "Setting successfully saved in file please reopen the app!\n"; } return a.exec(); } در این مثال ساده کاری که انجام میشه ابتدا بر روی هارد بررسی میشه که آیا فایل متنی text وجود داره یا خیر. اگر وجود داشت که محتویاتش خونده میشه و در داخل شی text ریخته میشه در غیر این صورت یک فایل متنی با این نام در پوشه حاوی پروژه کیوت ایجاد و مقادیر: !Hello و .Settings are saved here و !Goodbye اونجا ذخیره میشن. حالا اگر برنامه رو مجددا اجرا کنین اینبار اطلاعات از فایل text خونده میشن و در خروجی چاپ میشن.
  4. نیما غراب

    خیلی ممنونم آقا بهنام مشکل بعد از ذخیره کردن فایل .pro حل شد. سپاس گزارم.
  5. نیما غراب

    سلام به همه دوستان گرامی. من در آموزش های Qt دیدم که وقتی مدرس، فایل .pro پروژه رو تغییر میده، QMake به شکل خودکار اجرا میشه تا متناسب با تغییرات انجام شده Makefile جدید رو به روزرسانی کنه. اما من در Qt هر بار که فایل .pro رو تغییر میدم نیازه تا دوباره به شکل دستی روی نام پروژه راست کلیک و سپس run qmake رو انتخاب کنم. این آموزش ها البته قدیمین ولی من در نسخه های جدید Qt Creator چیزی مبنی بر اجرای خودکار QMake پیدا نکردم. حالا چه طوری میشه QMake به شکل خودکار پس از هر بار تغییر فایل .pro به اجرا شه؟ سپاس گزارم.
  6. نیما غراب

    سلام. به منظور شخصی سازی ویزارد یا ویرایش نوع کنونی ابتدا باید به مسیر ویزاردها در کیوت کریتور رفت: Qt\Tools\QtCreator\share\qtcreator\templates\wizards در این پوشه اطلاعات مربوط به ویزاردهای کیوت کریتور قابل مشاهده و ویرایش هست، همچنین میتونین با توجه به نمونه های موجود در ویزارد ازشون الگوبرداری کنین و ویزارد شخصی خودتون رو به کیوت کریتور اضافه کنین. جهت اطلاعات بیشتر پیشنهاد میکنم آموزش Introduction to Qt: A C++ Cross Platform Application Framework به تدریس Tod Gentille رو ببین. در قسمت VFP Getting Started - The Setup Tab View و درس Using and Modifying a Custom Class Wizard نمونه ای از همین کار آموزش داده میشه.
×
×
  • جدید...