2013-04-01 3 views
-1

마우스 버튼을 클릭하면 특정 좌표에서 자동 마우스 클릭 이벤트를 만들려고합니다.Qt에서 마우스 클릭 이벤트 3.0.3

이 소스 코드는 마우스 포인터를 좌표 영역으로 이동 시키지만 클릭하지는 않습니다.

이 문제를 해결하거나 마우스 클릭 이벤트를 자동화하는 새로운 아이디어를 제안하십시오.

참고 : 나는의 QApplication 내부 이벤트가 아닌 시스템 전체 이벤트는 QT 3.0.3

void mMouseClickFunction() 
    { 

    QWidget *d = QApplication::desktop()->screen(); 
    int w=d->width(); // returns desktop width 
    int h=d->height(); 
    printf("w=%d\nh=%d\n",w,h); 
    int x,y; 
    printf("Enter the points...\n"); 
    scanf("%d%d",&x,&y); 
    QApplication::desktop()->cursor().setPos(x,y); 
    QPoint pt(x,y); 
    std::cout << pt.x() << " " << pt.y() << std::endl; 
    QMouseEvent *e = new QMouseEvent(QEvent::MouseButtonPress, pt,Qt::LeftButton, 0); 
    QApplication::sendEvent(d, e); 
    std::cout << "in contentsMousePressEvent"<< e->x() << " " << e->y() << std::endl; 
    QMouseEvent *p = new QMouseEvent(QEvent::MouseButtonRelease, pt,Qt::LeftButton, 0); 
    QApplication::sendEvent(d, p); 
    std::cout << "in contentsMouseReleaseEvent"<< p->x() << " " << p->y() << std::endl; 
} 
+0

Qt3? 정말?!?! – Chris

답변

0

QApplication::sendEvent 보냅니다 사용하고 있습니다. 이런 이벤트를 보내려면 특정 시스템이어야합니다. 다음 창에 대한 함수 호출은 다음과 같습니다

http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspx

전화도 그런 종류의 당신이있는 UIAccess이 진실해야하고, 프로그램이에있는 서명 된 응용 프로그램입니다하지 않는 한, 당신은, 특정 창으로 제한됩니다 하드 드라이브의 오른쪽 부분.

편집 :

http://www.linuxquestions.org/questions/programming-9/simulating-a-mouse-click-594576/

희망하는 데 도움이 : 여기에 리눅스에 입력을 보내기위한 몇 가지 예를있는 페이지입니다.

+0

난 리눅스에서 동일한 도움이 필요합니다 envirnomet 귀하의 제안을 주셔서 감사합니다. ..... 그것을 해결할 수 있도록 도와주세요. – user2050636

+0

단계 접근 방식에 의해 단계를 이해할 수 있습니다 .... 나는이 doam에 새로운 오전 – user2050636

+0

나는 이미 구현되어있다. 마찬가지로 위에서 언급 한 리눅스 링크 – user2050636

관련 문제