Em alguns projetos há a necessidade de trocar o cursor do mouse para indicar ao usuário que houve alguma mudança, uma troca de ferramenta por exemplo. Com QT podemos trocar o cursor facilmente com apenas alguns comandos.
Quando precisamos informar para o usuário que o sistema está calculando algo que vai demorar para ser finalizado, podemos sobrescrever o cursor ativo por um cursor global de espera que indicará que o sistema está ocupado. É necessário restaurar o cursor após sobrescrever o cursor global, pois senão não haverá interação com Widgets de modo geral.
Exemplo:
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
calculate();
QApplication::restoreOverrideCursor();
Essa função não é muito útil para o uso em geral nas aplicações, pois remove o poder de troca de cursor que o QT dá para cada Widget especificamente.
Com QT podemos programar para cada Widget como que o mouse se comportará quando estiver dentro dele. Podemos usar enumeradores que são estáticos no QT ou usar imagens customizáveis por nós mesmos:
Exemplo enumerador:
mWidget->setCursor(QCursor(Qt::CrossCursor))
Exemplo customizável:
//com esse comando podemos escalar a imagem para o tamanho adequado
QPixmap pix = QPixmap("ponteirocustomizavel.png").scaled(32,32, Qt::KeepAspectRatio, Qt::SmoothTransformation);
QCursor c = QCursor(pix);
mWidget->setCursor(c);
Geralmente muda-se o ponteiro apenas quando este estiver dentro do centralWidget do MainWindow, logo basta usar a função setCursor() do centralWidget assim:
mMainWindow->setCursor(QCursor(Qt::CrossCursor));
Nenhum comentário:
Postar um comentário