Название: [РЕШЕНО] Чтение штрихкода Отправлено: Hvzh от Октябрь 14, 2014, 16:10 Доброго времени суток!
Имеется считыватель штрихкода, который система воспринимает как клавиатуру и передает считанные данные в stdin. Необходимо считать штрихкод из приложения Qt. С консольным вариантом проблем нет, а вот как считать их из гуишного приложения? Может, кто-нибудь может поделиться примером? Название: Re: Чтение штрихкода Отправлено: OKTA от Октябрь 14, 2014, 16:13 ;D А что мешает сделать работающее консольное приложение гуишным? ;D
Название: Re: Чтение штрихкода Отправлено: Hvzh от Октябрь 14, 2014, 16:41 ;D А что мешает сделать работающее консольное приложение гуишным? ;D Может, и ничего, может, я недопонимаю чего-то. Вот консольная: Код: #include <QTextStream> Вывод в консоль: Код: Scan code: 46106025 Однако, когда я пытаюсь вставить что-либо подобное в QDialog, например, то он замыкает весь ввод на себя, и мой код не работает. Вот так, например, я пытался это имплементировать: .cpp Код: #include <QTextStream> .h Код: #include <QObject> Название: Re: Чтение штрихкода Отправлено: Alex Custov от Октябрь 14, 2014, 16:46 char command[]=""; ... input >> command; Ой-вей, тут же память бьётся. Сканер эмулирующий клавиатуру посылает обычные QKeyEvent, которые ты можешь ловить в своём приложении. Чтение stdin тут не поможет, потому что нет терминала, куда посылается клавиатурный ввод со сканера. Проблема ещё в том чтобы отличить ввод со сканера от ввода с реальной клавиатуры. Название: Re: Чтение штрихкода Отправлено: Hvzh от Октябрь 14, 2014, 16:52 char command[]=""; ... input >> command; Ой-вей, тут же память бьётся. Сканер эмулирующий клавиатуру посылает обычные QKeyEvent, которые ты можешь ловить в своём приложении. Чтение stdin тут не поможет, потому что нет терминала, куда посылается клавиатурный ввод со сканера. Проблема ещё в том чтобы отличить ввод со сканера от ввода с реальной клавиатуры. Название: Re: Чтение штрихкода Отправлено: Hvzh от Октябрь 14, 2014, 16:57 Насколько я понимаю, при, например, нажатии кнопки "Сосканить код" мне нужно замкнуть клавиатурный ввод на какой-то свой виджет, дождаться окончания скана и после этого снова разблокировать ввод. Я нагуглил один пример, но в упор не понимаю, как его использовать:
Код: class KeyPressEater:public QObject{ Название: Re: Чтение штрихкода Отправлено: Alex Custov от Октябрь 14, 2014, 16:58 Знаю, что бьется, бог с ней. Мне не нужно отличать ввод со сканера от ввода с клавиатуры, софт подразумевается эксплуатировать только с мышой. А по поводу QKeyEvent - вот как это реально сделать? Я в событиях всяких Qt-шных пока еще не сильно разобрался :( Так вообще тогда делать нечего - переопредели http://qt-project.org/doc/qt-4.8/qwidget.html#keyPressEvent в своём главном виджете, и ты будешь ловить клавиатурные нажатия. Название: Чтение штрихкода Отправлено: Hvzh от Октябрь 15, 2014, 11:35 Всем спасибо! Разобрался, все работает
|