پی بردن به ویجدت فوکوس شده در Qt - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

پی بردن به ویجدت فوکوس شده در Qt

+1 امتیاز
سلام.

قصد دارم وقتی ویجدت های یکسان فوکوس می گیرن یک تابع دلخواه را اجرا کنم چطور این کار را انجام بدم؟
سوال شده شهریور 21, 1394  بوسیله ی مریم اکرمی (امتیاز 482)   25 55 66
ویرایش شده اردیبهشت 8, 1396 بوسیله ی مصطفی ساتکی

2 پاسخ

+2 امتیاز
 
بهترین پاسخ

به صورت زیر عمل کنید.

	bool Form::eventFilter(QObject *object, QEvent *event)
	{

		if (event->type() == QEvent::FocusIn)
		{
			if (object == ui.edit1)
			{
				//...

			}
			else if (object == ui.edit2)
			{
				//...

			}

		return false;
	}

	Form::Form(QWidget *parent)
		: QDialog(parent)
	{
		ui.setupUi(this);
		ui.edit1->installEventFilter(this);
		ui.edit2->installEventFilter(this);
}
     

 

پاسخ داده شده اردیبهشت 8, 1396 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد اردیبهشت 13, 1396 بوسیله ی مریم اکرمی
+1 امتیاز
برای تمامی این ویدجت‌ها متد installEventFilter رو اجرا کن. در متد eventFilter بررسی کن نوع event برابر با QFocusEvent باشه. سپس عمل مورد نظر رو انجام بده
پاسخ داده شده شهریور 25, 1394 بوسیله ی حامد مصافى (امتیاز 1,104)   2 3 12
...