Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Программное изменение положения мыши


Автор: gordmiand 29.8.2013, 15:28
хочу программно поменять положение мыши:
Код

void MainClass::mousePressEvent(QMouseEvent *event)
{
  event->pos().setX(100);
  event->pos().setY(200);
}

выдается ошибка
passing «const QPoint» as «this» argument of «void QPoint::setX(int)» discards qualifiers 
[-fpermissive]

Автор: bsa 29.8.2013, 17:47
http://qt-project.org/doc/qt-5.0/qtgui/qcursor.html#setPos

Автор: gordmiand 30.8.2013, 19:30
В используемой мной версии Qt 4.6.1 нет метода 
Код

void QCursor::setPos(QScreen * screen, int x, int y)

Пытаюсь делать через
Код

QApplication::desktop()->screen(n)->setCursor(???);

но что-то никак не получается...
А задача следующая: есть 2 монитора (сенсорный и обычный) с независимыми рабочими столами. На каждый из них выводится по одной форме приложения и хотелось бы сделать так, чтобы при клике пальцем на любой виджет с формы (да и просто на форму), выводимой на сенсорный монитор, курсор мыши оставался бы на своем старом месте (на форме, выводимой на обычный монитор), а не перелетал бы на кликнутый виджет. 

Автор: bsa 30.8.2013, 19:50
gordmiand,  попробуй так:
Код
QCursor::setPos(QApplication::desktop()->screen(n)->mapToGlobal(x,y));

Автор: bonne 2.9.2013, 14:22
Пример смены положения курсора мыши:
void __fastcall TForm1::Button6Click(TObject *Sender)
{
TPoint P;
P=Form1->ClientToScreen(Point(0, 0));
...
SetCursorPos(P.x+230, P.y+200);
...

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//Программное-изменение-положения-мыши-id521f3ecaae2015107a8b4567#findElement_E7045_522474f2ae2015ee408b49c7_0

Автор: bsa 2.9.2013, 14:54
bonne, только есть одна проблема - это не VCL.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)