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

GornerLabo

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

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

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

  • روز های برد

    4

آخرین بار برد GornerLabo در 2 آذر

GornerLabo یکی از رکورد داران بیشترین تعداد پسند مطالب است !

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

11 بسیار خوب

درباره GornerLabo

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

آخرین بازدید کنندگان نمایه

بلوک آخرین بازدید کننده ها غیر فعال شده است و به دیگر کاربران نشان داده نمیشود.

  1. GornerLabo

    با سلام. برای رایت دستورات در QSerialPort چندین روش هست که به ترتیب عبارتند از: 1- دستورات رشته ای: QString str = "command\r\n"; port->write(str.toStdString().c_str()); 2- فایل های باینری: QFile file(":/bin/file.bin"); if(!file.open(QIODevice::ReadOnly))return; QByteArray data = file.readAll(); port->write(data); 3- متغیر QByteArray: که مشکل من در این قسمت هست. فرض کنید متغیر زیر تعریف شده: QByteArray ba; ba.resize(100); ba.fill(0x00); ba[0] = 0x01; ba[8] = 0x0a; اگر این متغیر را در یک فایل باینری ذخیره کنیم مشکلی در رایت نیست اما اگر بدون ذخیره در باینری بخواهیم در پورت سریال رایت کنیم ، عمل رایت انجام نمیشه
  2. GornerLabo

    خیلی ممنون استاد
  3. با سلام خدمت اساتید محترم. اگر بخواهیم مقدار بازگشتی از رایت چندین دستور در مورد کلاس QSerialPort به صورت دلخواه ذخیره کنیم باید به چه شکل عمل کرد؟ کد زیر برای دستوری است که عمل رایت دستور را انجام میدهد: port->setPortName(""); // COM PORT NAME port->setBaudRate(QSerialPort::Baud9600); port->setFlowControl(QSerialPort::NoFlowControl); port->setParity(QSerialPort::NoParity); port->setDataBits(QSerialPort::Data8); port->setStopBits(QSerialPort::OneStop); port->open(QSerialPort::ReadWrite); if(port->isOpen()) { port->write(); // command 1 for write port->write(); // command 2 for write port->write(); // command 3 for write port->write(); // command 4 for write } حالا برای هر دستور رایت یک مقدار بازگشتی دریافت خواهیم کرد. پس میتوان با connect سیگنال readyRead با یک اسلات به صورت کد زیر این مقدار بازگشتی رو ذخیره کرد: connect(port,SIGNAL(readyRead()),this,SLOT(MySlot())); QByteArray b = port->readAll(); QFile file("e:/test/raw.bin"); if(!file.open(QIODevice::WriteOnly | QIODevice::Append))return; file.write(b); file.flush(); file.close(); حالا اگر بخواهیم مقدار بازگشتی رو از دستور رایت مشخصی دریافت کنیم ، شیوه صحیح کار چطور است؟
  4. GornerLabo

    آقا فرهاد الان توی برنامه م یک تابع دارم که یه اسلاتی رو اجرا میکنه. تا جایی که اطلاع دارم اسلات میره تو ترد بعد اجرا. پس چرا وقتی این تابع اجرا میشه ( در اصل اسلات رو اجرا میکنه) تا اسلات کارش تموم نشده ، ui هنگ میکنه؟
  5. GornerLabo

    ممنون بابت توضیح کامل. استاد اگه پروسس سنگین باشه ( مثل عمل رایت یک فایل حجیم باینری) به همین شیوه که برای کیوت مثال زدین عمل کنیم؟
  6. با سلام خدمت اساتید محترم. اگر پروژه ای که در کیوت ساختیم رو بخواییم از کلاس های QThread و QTimer استفاده کنیم ، در چه بخش هایی از پروژه باید استفاده کنیم؟ با توجه به جستجویی که داشتم هیچ از یک منابع به طور کامل و جامع توضیح ندادند که در پروژه های کیوت در چه قسمت هایی باید از QThread استفاده شه و در چه قسمت هایی از QTimer ! هدف من از این سوال این هست که در حین انجام یک پروسس از کدام کلاس باید استفاده کرد که ui هنگ نکنه! از اساتید محترم تقاضا دارم کامل این مشکل رو توضیح بدن با تشکر فراوان.
  7. GornerLabo

    حل شد! با کد: w.setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
  8. GornerLabo

    سلام و وقت بخیر. میخواستم در Qt Widget برای ویندوز نرم افزاری بسازم . اما در طراحی ui باید پنجره برنامه ( دکمه های close و minimize , restore down ) حذف بشن ودکمه هایی با طراحی جدید جایگزین بشن. مانند شکل زیر (گزینه 1 در تصویر) لینک تصویر و یک سوال دیگری در مورد همین تصویر داشتم. با توجه به گزینه 2 در تصویر به جز QTabWidget آیا کلاس دیگری هست برای طراحی ui به این سبک؟
  9. GornerLabo

    حل شد نحوه ی رفع مشکل: در کلاس B که میخواییم تغییراتی در ui یا بهتره بگم کلاس A ایجاد کنیم کافیست سیگنالی تعریف کنیم و در کلاس A سیگنال رو به اسلاتی کانکت دهیم و تغییرات دلخواه را در اسلات تعریف کنیم.
  10. GornerLabo

    آیا سیگنال اسلات گزینه مناسبی هست؟
  11. GornerLabo

    به عنوان مثال فرض کنید شما میخوایید در ui کلاس A تغییری در یک label ایجاد کنید. این تغییر باید در کلاس B انجام بگیره و در کلاس A اعمال بشه.
  12. GornerLabo

    در فایل هدر کلاسی که ساختم ، فایل .h از کلاس mainwindow رو فراخوانی کردم: #include "mainwindow.h" بعد در قسمت public ، از کلاس mainwindow یک شی ساختم: MainWindow mw;
  13. GornerLabo

    سلام. یک کلاس دارم که می‌خوام کلاس اصلی برنامه (MainWindow) رو داخلش فراخوانی کنم و ازش یه شیء بسازم. هدف اینه که از شی کلاس mainwindow می‌خوام برای دسترسی به تابعی که داخلش هست استفاده کنم. ولی زمانی که کامپایل می‌کنم این ارور رو دریافت می‌کنم: MainWindow does not name a type آیا راه حلی داره؟
  14. GornerLabo

    خیلی ممنون ازتون. کوتاه و مفید بود
  15. با سلام و وقت بخیر. فرض کنید برنامه دکمه ای داره که با کلیک بر روی دکمه یه سری عملیات و در کل پروسه ای انجام میشه. این پروسه اگر در thread انجام بشه ، از هنگ کردن ui برنامه جلوگیری میکنه. پروسه ای که انجام میشه برای نمایش درصد پیشرفتش باید از یک QProgressBar کمک بگیره! پس با این حساب در thread نیاز به آپدیت این Progress Bar هست که باید عرض کنم time انجام پروسه مشخص نیست . این مشکل به چه نحوی حل خواهد شد؟ با تشکر از اساتید محترم
×