مشکل در اتصال 2 سیگنال و1 اسلات (حل شد)



  • p{direction:rtl;text-align:right}. سلام
    من یه مبتدی توی کیوت هستم و دارم سیگنال و اسلات رو یاد میگیرم
    من دو تا Qdial , QLCDNumber رو به یک عدد QLCDNumber وصل کردم (البته تا اونجایی که بلد بودم) حالا مشکل اینه که وقتی dial_1 رو تغییر میدم روی 600، بعد از اینکه dial_2 رو میزارم 200مقدار LCD_3 از 600به 200 تغییر میکنه در حالیکه من میخام مقدار جمعشون رو LCD_3 نشون بده این هایی که کامنت شده رو امتحان کردم ولی نتونستم - عکس هم فکر کنم کمک کنه:

    @
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include"QLCDNumber"
    int A;
    int B;
    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    }
    // i must connect LCD3 with LCD2buttum & LCD1Buttum
    MainWindow::~MainWindow()
    {
    delete ui;
    }
    void MainWindow::on_dial_1_valueChanged(int value)
    {
    A=value;
    ui->LCD_1->display(value);
    }
    void MainWindow::on_dial_2_valueChanged(int value)
    {
    B=value;
    ui->LCD_2->display(value);
    }
    void MainWindow::on_LCD_3_overflow(int value=0)
    {

    //value=ui->LCD_1->intValue();
    

    // value=ui->LCD_1->intValue()+ui->LCD_2->intValue();
    //value=A+B;
    // ui->LCD_3->display(value);

    ui->LCD_3->display(ui->dial_1->value()+ui->dial_2->value());
    

    }

    @

    !http://upcity.ir/images2/65258388345490654720.png(لینک عکس )!

    !http://upcity.ir/images2/75088706699106125639.png(عکس 1 - 600)!

    !http://upcity.ir/images2/94568823948238698331.png(عکس ۲ - 400)!



  • p{direction:rtl;text-align:right}. این انجمن واقعا پر بار و فعالست!!!
    هرچقدر هم که من سوالم سطح پایین باشه ولی شما اساتید لااقل باید یه کمک حداقلی بهم بدین ....وگرنه نمیدونم برای چی از این پست بازدید میکنین؟؟؟!!!یعنی جور در نمیاد که بازدید کنید و هدفتون کمک کردن هم نباشه
    :(



  • p{direction:rtl;text-align:right}. متاسفم که نتونستید به جواب سوالتون برسید ولی توجه کنید اینجا کسی مسئولیت و اجباری به جواب دادن به سوالات نداره و همونطور که بارها گفته شده اعضای این انجمن لطف میکنند و اطلاعاتشون رو با دیگران به اشتراک میذارن و کمک میکنن.
    قبلا هم گفته شده که اعضا علاقه ای به پاسخگویی به سوالاتی که میتونید با یک جستجوی ساده به زبان انگلیسی یا فارسی و حتی با مطالعه دقیق تر مستندات کیوت بدست بیارین ندارند.
    البته ما هیچکس رو در مورد پرسش و پاسخی منع نمیکنیم و هرکس میتونه هر سوالی مرتبط با کیوت بپرسه ولی تضمینی برای اینکه به جواب برسه وجود نداره و دیگران مسئولیتی در این قبال ندارند و مواخذه نمیشوند چون ما اینجا نیستیم که کیوت رو آموزش بدیم و فقط کمک میکنیم تا مشکلات مهم برطرف بشه.

    p{direction:rtl;text-align:right}. در مورد سوالتون،
    چرا سیگنال ها رو به اسلات های هر دو LCD ها وصل کردید؟
    نتیجه ای که میگیرید منطقیه.

    p{direction:rtl;text-align:right}. 1- Dial1 رو به LCD1 وصل کنید و Dial2 رو به LCD2
    2- یک متد جدا برای انجام عملیاتتان ایجاد کنید و کد مربوط به جمع کردن این مقادیر رو در اونجا بنویسید و بعد این متد رو از هر دو اسلات صدا بزنید
    3- اگر کمی حرفه ای تر عمل کنید، برای تغییر مقادیر فقط از یک اسلات استفاده میکنید و هر دوی سیگنال ها رو به اون وصل میکنید و نیازی به ایجاد متد جداگانه نخواهد بود.

    p{direction:rtl;text-align:right}. امیدوارم بتونه کمک کنه



  • [quote author="Mohsen Akhlaghi" date="1408701050"]p{direction:rtl;text-align:right}. متاسفم که نتونستید به جواب سوالتون برسید ولی توجه کنید اینجا کسی مسئولیت و اجباری به جواب دادن به سوالات نداره و همونطور که بارها گفته شده اعضای این انجمن لطف میکنند و اطلاعاتشون رو با دیگران به اشتراک میذارن و کمک میکنن.
    قبلا هم گفته شده که اعضا علاقه ای به پاسخگویی به سوالاتی که میتونید با یک جستجوی ساده به زبان انگلیسی یا فارسی و حتی با مطالعه دقیق تر مستندات کیوت بدست بیارین ندارند.
    البته ما هیچکس رو در مورد پرسش و پاسخی منع نمیکنیم و هرکس میتونه هر سوالی مرتبط با کیوت بپرسه ولی تضمینی برای اینکه به جواب برسه وجود نداره و دیگران مسئولیتی در این قبال ندارند و مواخذه نمیشوند چون ما اینجا نیستیم که کیوت رو آموزش بدیم و فقط کمک میکنیم تا مشکلات مهم برطرف بشه.

    p{direction:rtl;text-align:right}. در مورد سوالتون،
    چرا سیگنال ها رو به اسلات های هر دو LCD ها وصل کردید؟
    نتیجه ای که میگیرید منطقیه.

    p{direction:rtl;text-align:right}. 1- Dial1 رو به LCD1 وصل کنید و Dial2 رو به LCD2
    2- یک متد جدا برای انجام عملیاتتان ایجاد کنید و کد مربوط به جمع کردن این مقادیر رو در اونجا بنویسید و بعد این متد رو از هر دو اسلات صدا بزنید
    3- اگر کمی حرفه ای تر عمل کنید، برای تغییر مقادیر فقط از یک اسلات استفاده میکنید و هر دوی سیگنال ها رو به اون وصل میکنید و نیازی به ایجاد متد جداگانه نخواهد بود.

    p{direction:rtl;text-align:right}. امیدوارم بتونه کمک کنه[/quote]

    p{direction:rtl;text-align:right}. ممنون از توجه تون

    p{direction:rtl;text-align:right}. من متوجه ی این هستم که دوستانی که اینجا هستند وظیفه ای در قبال پاسخ گویی ندارند ولی خب برای افراد تازه کاری مثله من اگه وقت بزارند لطف کردند
    من نمیخام هرکس بیاد و کامل جواب بده ولی خب اگه این 60 نفری که از این پست دیدن کردند هرکدوم یه اشاره ای میکردند خیلی کمک کرده بودند
    درمورد سرچ هم اینو بگم که نباید از افراد تازه کار این انتظار رو داشته باشید که براحتی بدونه درمورد چی باید سرچ کنه=>بهترین کمک اینه که یک عبارت بش بدین و بگید دنبال این بگرد... درسته؟
    من خودم با انجمن های مختلف آشنام ولی خب از جواب ندادن بدم میاد...آقا لااقل یه فحش بدین و بگید که هنوز اون مطلب رو نفهمیدی دوباره بگرد و بخون!!
    متاسفانه زبانم در حدی نیست که توی سایت های خارجی بتونم طرح سوال کنم ولی میتونم ازسوالات پرسیده شده توی اونجا استفاده کنم! بشرطی که بدونم دقیقا باید دنبال چی بگردم...
    بگذریم...

    p{direction:rtl;text-align:right}. ازجوابتون یه چیزهایی دستگیرم شد...باید برم امتحان کنم...

    p{direction:rtl;text-align:right}. واقعا خیلی خیلی ممنون از لطفتون
    موفق باشید



  • با توضیحات شما دوست عزیز برنامه م اصلاح شد و درست شد

    نیازی به اسلات سومی نبود و کافی بود فقط در اسلات1و2 یک تابع دیگه صدا زده بشه که اینجور میشه:

    @
    void MainWindow::on_dial_valueChanged(int value)
    {
    ui->lcdNumber->display(value);
    A=value;
    set_LCD3(A,B);
    }

    void MainWindow::on_dial_2_valueChanged(int value)
    {
    ui->lcdNumber_2->display(value);
    B=value;
    set_LCD3(A,B);
    }

    void MainWindow::set_LCD3(int A,int B){

    ui->lcdNumber_3->display(A+B);
    

    }
    @


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.