Я создаю небольшой файловый браузер для собственного использования в Ruby и использую Qt для просмотра. Идея в том, что он окажется на моем телевизоре, где я смогу использовать пульт для перемещения вверх и вниз и запуска файлов.
Все работает нормально, пока я не собираюсь перемещать выделение с помощью пульта. Мне удалось настроить службу D-Bus, поэтому я просто вызову методы, используя LIRC.
Код, который я использую для настройки вида, выглядит следующим образом:
@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
И тогда я не уверен, как изменить выбор. Думаю, я пытался, чтобы все setIndex, setSelection и все методы, звучащие одинаково, в DirModel, ItemSelectionModel и ListView, без всякой удачи. Я гуглял и читал API, ничего не находя.
В идеале, я хотел бы иметь что-то вроде "moveSelectionDown" и "moveSelectionUp", которые позаботятся об этом и убедятся, что он правильно оборачивается. Но я не могу ничего найти.