Форум русскоязычного сообщества Ubuntu


Автор Тема: Таймер, и отлов нажатой кнопки в консольном приложении.  (Прочитано 1470 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Conso

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Пишу консольное приложение на C++, надо сделать так, что бы через несколько секунд проиходило действие т.е. обычный таймер только он дожен работать без использования цыклов. Еще нужно отследить в нем нажатие клавиши, желательно тоже без цыклов. И все это должно быть не зависимым от платформы. Посоветуйте пожалуйста что-нибудь. Может есть есть какие библиотеки? Заранее благодарен.
Beer. Teets. Metal.

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
что бы через несколько секунд проиходило действие т.е. обычный таймер
man 3 sleep
Насчет клавиш смотрите ncurses

Оффлайн Conso

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
sleep вроде приостанавливает исполнение программы?
Паралельно должны отслеживатся нажатия...
Beer. Teets. Metal.

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Два потока в программе сделать, один клавиши обрабатывает, второй спит и ждет.

Оффлайн mkarasik

  • Участник
  • *
  • Сообщений: 163
    • Просмотр профиля
И все это должно быть не зависимым от платформы.

и

ncurses

Как то не очень вяжутся. Единственная независимая вещь, которую я знаю, это stdin но она не все клавиши отрабатывает.

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
А какие кнопки нужны?

Наверно при желании очень тонко обрабатывать события с клавиатуры платформенно независимым способом, нужно смотреть в сторону SDL.

Оффлайн Conso

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
А реально-ли в консольном приложении два потока?
Кнопки нужны - w,a,s,d. Лучше стрелки конечно.
Beer. Teets. Metal.

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
А реально-ли в консольном приложении два потока?
А разница?

Это как раз гуем нельзя в несколько потоков управлять.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
А разница?

Это как раз гуем нельзя в несколько потоков управлять.
Это почему? То что в Qt event-loop так устроен, это особенности библиотеки, а не глобальные законы мироздания. В той же Qt диалоги при запуски их через exec работают в отдельном потоке, а не в том же что и остальные твои виджеты.

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Ааа... я не знал, думал веде так.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

 

Страница сгенерирована за 0.062 секунд. Запросов: 25.