ورود

View Full Version : فهمیدن نقطه کلیک شده



mohammad0773
چهارشنبه 21 بهمن 1394, 19:48 عصر
سلام.ببخشید چگونه میشه فهمید کاربر چه نقطه ای از پنجره نرم افزار رو کلیک کرده؟
یه سوال دیگه :کلیک راست برروی یک ویدجت درکل چگونه کار میکنه؟چطوری باید طراحیش کرد؟

mohammad0773
دوشنبه 24 اسفند 1394, 05:43 صبح
و اما چطوری میشه نقطه کلیک شده رو فهمید:
1-سربار گزاری تابع QMousePressEvent در هیدر پنچره مورد نظر:

void mousePressEvent(QMouseEvent *m);

2-تعریف تابع بالا:

void MainWindow::mousePressEvent(QMouseEvent *m) { int x=m->x(); int y=m->y(); }

کامبیز اسدزاده
دوشنبه 24 اسفند 1394, 06:11 صبح
سلام.ببخشید چگونه میشه فهمید کاربر چه نقطه ای از پنجره نرم افزار رو کلیک کرده؟
یه سوال دیگه :کلیک راست برروی یک ویدجت درکل چگونه کار میکنه؟چطوری باید طراحیش کرد؟

قبل از هر چیز تحقیق کنید !!!

پاسخ سوال اولتون: http://stackoverflow.com/questions/4349769/getting-mouse-click-location-of-a-label-in-qt

و پاسخ سوال دومتون، در فایل .h تابع رو به این صورت تعریف کنید:


void mousePressEvent(QMouseEvent *event);


و در فایل .cpp بدنه رو اینطور پیاده کنید:


void MainWindow::mousePressEvent(QMouseEvent *event)
{
if (event->button()==Qt::RightButton){
qDebug() << "right button is pressed";
}
}

mohammad0773
دوشنبه 24 اسفند 1394, 06:31 صبح
سلام.راستش از کلیک راست همچین منظوری داشتم:
139600

کامبیز اسدزاده
دوشنبه 24 اسفند 1394, 07:25 صبح
سلام.راستش از کلیک راست همچین منظوری داشتم:
139600

با همین روشی میتونید کلیک شدن دکمه راست ماوس رو تشخیص بدین و در ادامه هر عملی رو بر اساس اون اجرا کنید که میتونه شامل توابع مثلا یک Context Menu باشه.