ورود

View Full Version : فرستادن سیگنال به یک کلاس دیگر



kitten
سه شنبه 01 شهریور 1390, 12:24 عصر
سلام دوستان
من یه کلاس mainwindow دارم که توش یه qwidget درست کردم تا از کاربر یه سوالاتی پرسیده بشه حالا می خوام وقتی کاربر روی button مورد نظر من کلید کرد این qwidget بسته بشه و به کلاس mainwindow اطلاع داده بشه ( یه سیگنالی بفرستم) و کلاس mainwindow من یک اسلات مورد نظر را اجرا کند
چیکار باید انجام بدم؟

glassysmart
سه شنبه 01 شهریور 1390, 14:50 عصر
سلام
به نظر من شما می توانی به وسیله سازنده یا یه متد از widget آدرس mainwidget را در widget به دست آوری و ارتباط را برقرار کنی

حامد مصافی
سه شنبه 01 شهریور 1390, 15:55 عصر
آیا می‌خواهید از QDialog استفاده کنید؟؟

با فرض اینکه خیر (اما بهتر است استفاده کنید.)
یک سیگنال در کلاس خود تعریف کرده و سیگنال کلیک کلید را به این سیگنال متصل کنید (در کیوت یک سیگنال می‌تواند به سیگنال دیگری متصل شود) و سپس در خارج از این کلاس با سیگنال تعریف شده ارتباط بر قرار کنید.

با فرض جواب بله
سیگنال کلیک کلید را به اسلات accept متصل کنید و برای فراخوانی دیالو گ چنین کدی بنویسید


dialogDeliveredClass *dialog = new dialogDeliveredClass();
if(dialog->show() == QDialog::Accepted){
//do something here...
}