2013-12-20 1 views
0

Рассмотрим У меня есть два окна: window1 и window2, как показано нижеКак вызвать щелчок по известным координатам экрана?

------------------------------ 
| x | This is the window1 | 
|----------------------------| 
|       | 
| This window contains | 
| a webview that has  | 
| transparent background. -|----------------| 
|   | x |   | This is window2| 
|   - - - - - - - --|----------------| 
|   |If I click HERE |    | 
------------------------------    | 
      | I want to activate window2.  | 
      |         | 
      |         | 
      |         | 
      ----------------------------------- 

window1 загружает HTML файл в QWebView и есть прозрачная область like described here.

Теперь проблема заключается в том, что, когда я нажимаю на прозрачной области окна, который находится под window1 (в данном случае window2) является не активирован. Это нормально, потому что есть документ HTML с прозрачным фоном.

Я думаю, что правильный путь будет сделать функцию в C++, которая будет имитировать щелчок по известным координатам под активированное окном.

Как я могу это сделать в Qt?

ответ

0

Я думаю, вы можете переопределить виртуальную функцию QWidget:

void QWidget::mousePressEvent(QMouseEvent * event) 

и указать "интерактивный прямоугольник":

void MyWebView::mousePressEvent(QMouseEvent * event) { 
    // Set this a class variable 
    QRect clickableArea = QRect(int x, int y, int width, int height); 
    if(clickableArea->contains(event->pos())) { 
     // Activate window2 
    } 
} 
+0

не только активировать - что если window2 содержит кнопку? Если пользователь нажимает на прозрачный фон, нужно нажать кнопку ... –

 Смежные вопросы

  • Нет связанных вопросов^_^