Je crée un petit navigateur de fichiers pour mon propre usage, dans Ruby, et j'utilise Qt pour la vue. L'idée est que ça finira sur ma télé, où je peux utiliser la télécommande pour monter et descendre et lancer des fichiers.Déplacement par programme dans un ListView dans Qt (Ruby)
Tout fonctionne bien, jusqu'à ce que je vais déplacer la sélection en utilisant la télécommande. J'ai réussi à mettre en place un service D-Bus, je vais donc appeler les méthodes en utilisant LIRC.
Le code que je utilise pour la mise en place de la vue ressemble à ceci:
@dm = Qt::DirModel.new
@sm = Qt::ItemSelectionModel.new(@dm)
@lv = Qt::ListView.new
@lv.model = @dm
@lv.selectionModel = @sm
cwd = @dm.index(@dir)
@lv.rootIndex = cwd
Et puis je ne suis pas sûr comment changer la sélection. Je pense que j'ai dû essayer tous les setIndex, setSelection et toutes les méthodes similaires, sur les DirModel, ItemSelectionModel et ListView, sans aucune chance. J'ai été googler et lire l'API sans rien trouver.
Idéalement, j'aurais quelque chose comme "moveSelectionDown" et "moveSelectionUp" qui s'en occuperait, et s'assurerait qu'il se déroule correctement. Mais je n'arrive pas à trouver quelque chose.