Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: simark1979 от Декабрь 26, 2009, 00:29



Название: Как убрать указатель мышки
Отправлено: simark1979 от Декабрь 26, 2009, 00:29
Я использую тач скриин

В конструкторе главного окна указатель удалось убрать так:

    QCursor oCursor(Qt::BlankCursor);
    oCursor.setPos(-100, -100);
    setCursor(oCursor);

но как его убрать и во время загрузки приложения?


Название: Re: Как убрать указатель мышки
Отправлено: Dendy от Декабрь 26, 2009, 00:36
Код
C++ (Qt)
int main( int argc, char ** argv )
{
   QApplication app( argc, argv );
   app.changeOverrideCursor( Qt::BlankCursor );
   // loading...
   app.restoreOverrideCursor();
   return app.exec();
 


Название: Re: Как убрать указатель мышки
Отправлено: simark1979 от Декабрь 27, 2009, 21:51
Что-то не то. Всё равно видно  :(


Название: Re: Как убрать указатель мышки
Отправлено: Alex Custov от Декабрь 27, 2009, 23:54
Что-то не то. Всё равно видно  :(

Убрать в приложении или общесистемно?


Название: Re: Как убрать указатель мышки
Отправлено: crossly от Декабрь 28, 2009, 00:14
Что-то не то. Всё равно видно  :(
Код:
void QApplication::changeOverrideCursor ( const QCursor & cursor )   [static]

Changes the currently active application override cursor to cursor.

This function has no effect if setOverrideCursor() was not called.


Название: Re: Как убрать указатель мышки
Отправлено: Dendy от Декабрь 28, 2009, 00:54
crossly, ваша правда, спасибо! В примере должно быть setOverrideCursor() вместо changeOverrideCursor().


Название: Re: Как убрать указатель мышки
Отправлено: simark1979 от Декабрь 28, 2009, 10:41
Желательно убрать общесистемно.
Выше предоложенные способы не проходят.
Всё равно курсор выскакивает.


Название: Re: Как убрать указатель мышки
Отправлено: Dendy от Декабрь 28, 2009, 11:38
А так работает?

Код
C++ (Qt)
int main( int argc, char ** argv )
{
   QApplication app( argc, argv );
   app.setOverrideCursor( Qt::BlankCursor );
   // loading...
   return app.exec();
}
 


Название: Re: Как убрать указатель мышки
Отправлено: simark1979 от Декабрь 29, 2009, 13:29
Нет и так не работает


Название: Re: Как убрать указатель мышки
Отправлено: SimpleSunny от Декабрь 29, 2009, 14:53
А ОС какая?


Название: Re: Как убрать указатель мышки
Отправлено: simark1979 от Март 12, 2010, 22:58
OS linux embdedded
запущен под ARMом -


Название: Re: Как убрать указатель мышки
Отправлено: break от Март 12, 2010, 23:29
я использовал под линукс программу unclutter которая запускалась с загрузкой оконного менеджера


Название: Re: Как убрать указатель мышки
Отправлено: SABROG от Март 12, 2010, 23:42
Такой вариант?

Код
C++ (Qt)
   QPixmap pix(32, 32);
   pix.fill(Qt::transparent);
   a.setOverrideCursor(QCursor(pix));
 

P.S.: надеюсь автор снова никуда не пропадет на 3 месяца, так как дата первого поста "Декабрь 26, 2009, 00:29"


Название: Re: Как убрать указатель мышки
Отправлено: simark1979 от Март 13, 2010, 00:38
Не исчезну ;D
Только, насколько я понимаю, указатель пропадет в приложении (этого я уже добился), а мне надо убрать и во время загрузки приложения.


Название: Re: Как убрать указатель мышки
Отправлено: SABROG от Март 13, 2010, 01:08
а мне надо убрать и во время загрузки приложения.

А смысл? Это тебе тогда вообще на другой форум нужно, где посоветуют как отключать системными функциями курсор прежде чем загрузить программу на Qt. А потом еще и включить обратно, когда программа крашнется или выйдет. Вероятно придется писать скрипт.


Название: Re: Как убрать указатель мышки
Отправлено: Dendy от Март 13, 2010, 17:07
Подозреваю, что курсор меняется при показе первого окна, а в вашем коде до этого момента приложение какое-то время занимается инициализацией, во время которой курсор виден. Если так, то рецепт прост: показываете сплеш-скрин и в его showEvent() (к примеру) вызываете код инициализации. Или стартовать инициализацию по таймеру, когда курсор уже спрятался. Или попробовать принудительно перед инициализацией вызвать QApplication::processEvents().