رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران

بهنام صباغی

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

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

  • روز های برد

    27

تمامی مطالب نوشته شده توسط بهنام صباغی

  1. بهنام صباغی

    متاسفانه مشکلاتی داره سه بعدی کیوت و دست رو خیلی میبنده من قبلا با یک سریشون برخورد کردم و تصمیم گرفتم برم سراغ VTK خوبم جواب داد دست ادمم باز میذاره توی کار من خیلی وقته سه بعدی کار نکردم و با خود سه بعدی کیوت هم اصلا نساختم همون اوایل محدودیت هایی داشت که فراریمون داد سمت VTK بهتره بقیه دوستان کمک کنند.
  2. بهنام صباغی

    یک راه دیگه که من دیدم استفاده میکنند محدود کردن زاویه دوربین هست یعنی محدودش میکنی کلا نتونه بره زیر نمودار برای زوم هم زوم لول تعریف کن طوری که از یه حدی بیشتر نتونه زوم کنه این جواب کارتو میده ؟
  3. بهنام صباغی

    در واقع شامل همه موارد هست یعنی اگر بیرونی تریم شی یه Item باشه خب شما یه کامپوننت از آیتم داری که توش یه rectangle هست و میتونی هر پراپرتیش رو که بخوای تعریف کنی توی بالاترین کامپوننت و بدی بیرون که استفاده بشه
  4. بهنام صباغی

    خیلی هم ممنون از برخورد خوبتون چشم وقت کنم مثال میذارم ولی برام توی اولویت نیست خیلی درگیرم.?
  5. بهنام صباغی

    ? سریع بهتون بر میخوره‌ها نه دیگه در مورد خود chaiscript مثال فرستادم ولی کاربردش رو که گفتم خدمتتون برای هرکس کاربردش جدا تعریف میشه کاری که ما کردیم برای کار خودمون بود و توی کد‌های شرکت هست با همین منطقی که گفتم و همین مثالی که فرستادم میشه کارهایی که میخواید رو پیاده کنید دیگه تعریف تابع و استفادش رو که مثالش رو فرستادم این که یک تابع save و load داشته باشی هم که سادست توی کار روی دیتا بقیشم که عملیاتی که میخوای رو تعریف میکنی حالا جمع یا ضرب یا تقسیم و ... در این مورد توضیحات روشنه نیاز به مثال نیست یا میتونم بگم حال مثال نوشتن ندارم ? بازم معذرت میخوام اگر شما یا دوستان رو ناراحت کردم.
  6. بهنام صباغی

    مثال رو که در پست اول فرستادم دقت نکردید ؟
  7. بهنام صباغی

    خیر توبع توی سی پلاس پلاس نوشته میشند و توی کد ریجستر میشند یعنی کد همون کد کامپایل شده سی پلاس پلاس هست ولی میتونید توی ران تایم صداشون کنید مثلا ما برای کار روی تصویر ازش استفاده کردیم میتونستیم تصاویر رو الگوریتم های مختلف روشون اعمال کنیم فرض کنید خروجی یه تابع تصویر بود و بعد میشد فیلتر های مختلف و عملیات مختلف رو که توابعشون رو ریجستر کرده بودیم رو روش اعمال کنیم و تابع Save هم داشتیم که تصویر رو بعد عملیات ذخیره می‌کردیم خوبیش این بود که برای کارهای دم دستی و ساده روی تصویر میتونست کاربر خودش کارهایی که میخواست رو روی تصویر انجام بده و بعد از رسیدن به یک کد نسبتا خوب این کد میومد توی سی پلاس پلاس میشد یک ابزار برای نرم‌افزار یعنی تیم علمی یه ابزار راحت داشت که سرعت سی پلاس پلاس رو داشت و میتونست کارهایی که میخواست رو انجام بده بدون این که توی کد سی پلاس پلاس دست ببره و سرعت سی پلاس پلاس رو هم داشت. باید کاربرد دقیق تعریف بشه تا بشه توی این پیادش کرد مثلا کار ما با تصویر بود میشد گرفت و ذخیرش کرد یا حتی تابع خوندن تصویر داشتیم توش. درکل توابع از قبل کامپایل شده و ریجستر شده رو میتونه ران کنه یعنی یه جورایی میتونید مفسر خودتون رو طوری که دوست دارید و کاربردتون هست تعریف کنید مثل کاری که ما کردیم.
  8. بهنام صباغی

    میتونند از http://chaiscript.com هم استفاده کنند که به شما اجاره میده توابع از پیش تعریف شده سی پلاس پلاس رو در ران تایم صدا بزنید اگر توابع پایه ای که لازم دارند رو اضافه کنند میتونند توی ران تایم کد بنویسند و اجرا کنند. به مثال خودش دقت کنید : #include <chaiscript/chaiscript.hpp> std::string helloWorld(const std::string &t_name) { return "Hello " + t_name + "!"; } int main() { chaiscript::ChaiScript chai; chai.add(chaiscript::fun(&helloWorld), "helloWorld"); chai.eval(R"( puts(helloWorld("Bob")); )"); } این چیزی رو که مد نظرتون هست پیاده میکنه ؟ @kambiz behnia
  9. بهنام صباغی

    سلام میتونید پراپرتی که نیاز داری رو توی پرنت ایجاد کنید چون ساختار درختی هست وقتی توی پرنت داشته باشید توی دو تا صفحه هم داریدشون. qt - Qml - passing property value between two components - Stack Overflow
  10. بهنام صباغی

    سلام اگر میخوای html رو نشون بدی بدش به وب ویو.
  11. بهنام صباغی

    خواهش میکنم. خدا رو شکر که حل شد ولی دنبال دلیل باشید و نگذارید بیش از این مشکل توی برنامه باقی بمونه یعنی دلیل چند بار امیت شدن رو متوجه بشید وگرنه جلوتر ممکنه مشکلات مشابهی پیش بیاد و ترکیب این مشکلات با هم غیر قابل حل باشه. توی یک پروژه تیم قبلی کلی تایمر توی لایه ویو استفاده کرده بود و کل کدها توی یه تایمر کلی بود و خلاصه خیلی بهم ریخته بود سر همین یه سیگنال روشن شدن دستگاه دوبار ارسال میشد برای این که همین مشکل ساده رو حل کنم نزدیک یک هفته ازم وقت گرفت تا انجامش بدم تازه مدام هم گوش به زنگ خطر بودم چون میدونستم اگر مشکل دیگه ای پیش بیاد هیچ تضمینی نیست بشه درستش کرد چون هر تایمر جدا داشت کار میکرد و روی یک قسمت از کد اثر میگذاشت و با توجه به این که کد کثیف بود نمیشد درست سر در آورد و چون زمان پروژه از ددلاین عبور کرده بود وقتی برای ریفکتور کردن کد نبود در صورتی که اگر از همون اول به این مشکلات ریز رسیدگی میکردند این مشکلات پیش نمیاومد. پیشنهاد من هم برای شما اینه که دقیق سر در بیارید چرا داره چند بار امیت میشه بعد اگر منطقی بود و راهی برای حلش نبود از همین روشی که فعلا استفاده کردید استفاده کنید. سوالی هم بود بپرسید در خدمتیم.
  12. بهنام صباغی

    توی تابع ست کردن متغیر سیگنال تغییرش رو فراخوانی کردید ؟ نحوه ارسالتون به کیو ام ال به چه شکل هست ؟ از طرفی اگر کدتون همینی هست که ارسال کردید خب چرا توی تعریف errpan مستقیم برابر با ui.acptCard قرار ندادید ؟ توی تابع setacptCard(true); چرا به این صورت نیست ؟ setAcptCard(true);در کل اگر درست تعریف کرده باشید و سیگنال تغییر رو هم توی تابع ست کردن فراخوانی کرده باشید نباید مشکلی باشه. شاید لازم باشه توی یک پروژه ساده این کار رو انجام بدید و ببینید کار میکنه یا نه اگر کار نکرد که مشخصه روند رو دارید اشتباه میرید و میتونید کمی بیشتر مطالعه کنید تا مشکل حل بشه اما اگر کار کرد و روند با روند توی کد خودتون یکی بود شاید لازم باشه کد اصلی رو دید.
  13. بهنام صباغی

    با سلام از این دست مشکلات زیاد پیش میاد در حدی که بعد مدتی بدون فکر کردن وقتی مشکل براتون پیش میاد خودکار یک سری کار انجام میدید تا حلش کنید. ولی این دست مشکلات در برخی مواقع لایه به لایه هستند مثلا یک کار کوچیک در حد qmake میتونه مشکل اضافه کردن فایل جدید رو حل بکنه اما بعضی وقتها که تغییرات توی پروژه زیاده نیاز هست اول clean کنید پروژه رو اما بعضی وقتا این روش هم جواب نمیده مخصوصا وقتی یک فایل ui که مال مدتها پیش هست رو تغییر میدی مثلا یک ویجت پرموت شده به یک کلاس دیگه بعد این پرموت رو تغییر میدید در برخی مواقع نه با clean کردن حل میشه نه به با کیو میک نه حتی با rebuild باید فایل ui که توسط کیوت برای فرم ساخته شده رو پاک کنید مثلا برای MainWindow یک فایل با اسم ui_MainWindow درست میکنه که باید اون رو پاک کنید. هرکدوم از این موارد مدتها وقت قبلا ازم گرفته تا رفع شدند ولی شما حواستون باشه به همچین مشکلاتی خوردید راه حل‌های اینطوری داره و نیاز هم نیست همه رو انجام بدید مرحله به مرحله انجام بدید تا جایی که مشکلتون حل بشه چون مثلا qmake توی پروژه بزرگ زمان خیلی کمتری نسبت به clean کردن و دوباره بیلد کردن میگیره. موفق باشید.
  14. بهنام صباغی

    با سلام کتابخانه‌های زیادی برای کار با فایل‌های فشرده وجود داره و داکیومنت هم دارند میتونید بینشون جستجو کنید ببینید کدوم راه حل مشکل شما رو داره من یه نگاهی کلی کردم یه چیزایی دارند. این مثال هم اوپن سورس هست میتونید ببینید با کیوت هم نوشته شده : GitHub - tsujan/Arqiver: Simple Qt archive manager based on libarchive,... همین کاری که میخواید رو کرده انگار اگر درست یه نگاهی به کدش بندازید حل میشه مشکلتون. موفق باشید.
  15. بهنام صباغی

    ننیدونم منظورتون از پلاگین دقیقا چی هست ولی برای این که برنامه کار بکنه باید پیشنیازهاش کنارش باشه مثل dll های کتابخانه های استفاده شده در برنامه یا مثلا فایل‌های مورد نیاز برای پلاگین‌ها و درایورهای مورد نیاز شما اگر چیزی اضافه کردید طبق مستنداتش عمل کنید تا مشکل برطرف بشه اگر هم مستنداتی ازش در دسترس نیست از مستندات کتابخانه‌های مشابه استفاده کنید.
  16. بهنام صباغی

    اگر طبق اون پست عمل کرده باشی پیش نیاز ها و dllهای کیوت کنار برنامه ریخته شده و نیاز هست که اگر از کتابخانه حانبی دیگه‌ای هم استفاده کردید dll و موارد مورد نیاز دیگش رو ‌برای برنامه فراهم کنید.
  17. بهنام صباغی

    سلام نیاز هست دیپلوی کنید توضیحات بیشتر توی لینک نصب و راه اندازی برنامه‌های تحت کیوت هست. موفق باشید.
  18. بهنام صباغی

    با سلام تابع خاصی برای این کار ندیدم ولی تیکه کد زیر کار میکنه براتون نوشتمش : QByteArray data = {"test values are good"}; qDebug() << data; int bufSize = 3; int dataSize = data.size(); dataSize = dataSize % bufSize ? dataSize / 3 + 1 : dataSize / 3; for (int i = 0; i < dataSize; ++i) { qDebug() << data.mid(i * bufSize, bufSize); }
  19. بهنام صباغی

    سلام توی همین لینک یک مثال در ساده ترین حالت ممکن رو نوشته و از قابلیت‌هاش استفاده کرده شما چه مشکلی باهاش دارید ؟ یعنی کجاش رو مشکل دارید و متوجه نمی‌شید ؟ اصلا کد رو اجرا کردید ازش استفاده کردید ؟
  20. بهنام صباغی

    با سلام چیزی که شما نیاز دارید ذخیره اطلاعات هست حالا روش های متفاوتی هست که پیشنهاد من دیتابیس هست و میتونید از پلاگین کیوت برای اس کیو ال استفاده کنید و برای این که به صورت عادی باز نشه هم میتونید از Qt SQL driver plugin for SQLCipher استفاده کنید برای رمز نگاری دیتابیستون. موفق باشید.
  21. بهنام صباغی

    QCustomPlot

    نگارش 2.0.1

    17 دریافت

    QCustomPlot یک کتابخانه ویجت کیوت سی پلاس پلاس است که هیچ پیش‌نیاز بیشتری ندارد و به خوبی مستند شده است. این کتابخانه تمرکز بر انتشار گراف و نمودارهای دو بعدی سنگین دارد و با بهره‌وری عالی خود انتخاب خوبی برای مجسم‌سازی بی‌درنگ است. نگاهی به آموزش راه اندازی و آموزش مقدماتی نمودار بندازید.

    رایگان

  22. بهنام صباغی

    با سلام پیشفرض وقتی شما تغییر میدید موقع ذخیره کردن خودش ران میکنه کیو میک رو تنظیم خاصی یادم نمیاد براش انجام داده باشم. مطمئنید بعد از ذخیره کردن کیومیک ران نمیشه ؟
  23. بهنام صباغی

    یک کتابخانه نیست اینی که من دادم لینک بهترین کتابخانه‌های سی پلاس پلاس هست توی زمینه های مختلف شما کدوم رو میخواید ؟ جستجو کنید آموزشش رو بعید میدونم مثلا توی لیندا یا یودمی پیدا کنید ولی توی یو تیوب برای هر کتابخانه احتمالش خیلی زیاده که ویدئو پیدا بشه از دوستان هندی یا چینی .
  24. بهنام صباغی

    خب پس مشکل چیز دیگست کلا مشکلی با کتابخانه نداری دیتا رو متوجه نشدی باید چکارش کنی. شاید یکم طولانی باشه بحثش ولی سعی میکنم یجوری توضیح بدم متوجه بشید. این حقیقت وجود داره که شما میخواید از دیتا استفاده کنید و صرفا نمیخواید ردش کنید بره پس مثلا به ازای هر مقدار عددی یه کامپوننت نمایشی برای نمایشش نیاز دارید. و این رو باید در زمان نوشتن برنامه مشخص کنید. پس در حالت عادی قضیه اونقدار هم داینامیک نیست و شما می‌دونید مثلا توی لیست قراره چه داده هایی نمایش داده بشه فرض کنید یه کاربر دارید که نام و نام خانوادگی و آدرس ایمیل و شماره موبایل داره از بین ان موارد ممکنه تعدادیشون بیش از یک مقدار داشته باشند یا اصلا ممکنه اپشنال باشند ولی کلیت مشخصه پس با روند عادی که توی پست http://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html گفته شده قابل انجام هست. اما وقتی شما میخواید فول داینامیک باشه یعنی ساختارهای داده پیچیده و تودرتو و کاملا داینامیک داشته باشید طوری که حتی ممکنه خود کاربر مواردی رو اضافه کنه مثلا فرض کنیم بخواد یه بخش برای حیوانات خانگیش اضافه کنه و توی اون دسته بندی بذاره و ... قضیه یکم فرق می‌کنه اما اونم راه حل داره که راهش اینه مثلا هر بخشی که میشه دیتا توش وارد کرد رو نوعش رو از کاربر بگیرید و بر اساس اون مثلا لیبل یا اسپین باکس یا ... نمایش بدید اما مشکل شما چند قدم عقب تر هست یعنی توی آماده سازی و ارسال دیتا به کیو ام ال مشکل دارید که گفتم اگر دیتا ساختار داره یا میتونید ساختار براش در نظر بگیرید که چه بهتر اگر هم ساختار نداره که روش جیسان کردن جواب میده اما این که چطور دیتا رو به جیسان تبدیل کنید می‌تونید دستی این کار رو انجام بدید که البته چندان هم داینامیک نیست یا می‌تونید یه کتابخانه برای تبدیل این کار پیدا کنید که بیاد تبدیل رو براتون انجام بده ولی اینو در نظر داشته باشید که اگر دارید همچین کاری می‌کنید شاید بهتر باشه از دیتابیس‌های NoSQL یا کلا جیسان بیس استفاده کنید. اما اجازه بدید یکم جزئی تر توی مسئله وارد بشم. الان شما دارید دیتا رو از دیتابیس SQL بیس میخونید و توی مدل اون داریدش حقیقت اینه که روند کاریش تا جایی که من یادم میاد جدولی هست یعنی شما الان که اطلاعات رو خوندی به ازای هر ردیف یه سری فیلد داری پس اون چنان داینامیک و قابل تغییر نیست که نیاز باشه از کتابخانه و ... برای تبدیلش استفاده کنی یه روش میتونه این باشه که شما هر ردیف رو یک جیسان در نظر بگیری و هر فیلد رو یک فیلد جیسان و به همین سادگی می‌تونید تبدیلش کنید به جیسان و ادامه روند هم که توی پست‌های بالا توضیح داده شده. حقیقتش فکر می‌کنم توی خود کیو ام ال یه ساده ترین حالت ممکن این قضیه هندل شده یعنی وقتی دیتا از یکی از کانال های تعریف شده به کیو ام ال برسه خیلی کار باهاش سادست مثلا وقتی JSON یا XML از طریق شبکه به برنامه ارسال می‌شود ولی الان مشکل شما ایجاد اون کانال ارتباطی هست شاید تا حدودی که خود کیوت توضیح داده برای هر استفاده چطور این کار رو بکنیم ولی به گفته شما شاید یک راه ساده یا یک ساختار مدل داده قابل ارسال به کیو ام ال اگر تعریف می‌کرد که خودش این قضیه رو هندل می‌کرد خیلی می‌تونست ساده تر باشه این قضیه هم ولی تا جایی که من می‌دونم توضیحات داده برای هربار ولی خودش یک کلاس جامع و داینامیک درست نکرده شاید دلایل خودش رو داره یا شایدم خودش درست کرده من خبر ندارم ? موفق باشید.
  25. بهنام صباغی

    با سلام میتونید از کتابخانه هایی که برای این کار وجود داره استفاده کنید نگاهی به بخش Compression لینک Awesome C/C++ بندازید کتابخانه‌های خوبی فراهم هست. موفق باشید.
×
×
  • جدید...