Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Uhbif от Ноябрь 09, 2023, 11:12



Название: Работа с ком-портом в Qt
Отправлено: Uhbif от Ноябрь 09, 2023, 11:12
Всем привет, пробую освоить Qt. Хочу написать программу терминал для работы с ком-портом.
Не могу разобраться с такой вещью.
serialPort.write("a"); - если вставить эту функцию в обработчик кнопки, то все корректно отправляется в порт. Теперь я хочу чтобы в порт отправлялось, то что я введу в программе.
Я через редактор формы добавляю строку даю ей имя txtInput  и пишу так:
 serialPort.write(this->ui->txtInput->text()); - так не работает, компилятор ругается. Как правильно отправить данные в порт, которые я буду вводить в строку в программе?


Название: Re: Работа с ком-портом в Qt
Отправлено: ssoft от Ноябрь 09, 2023, 14:55
Здесь имеется несоответствие входящих параметров метода write, который принимает const char * или QByteArray, и результата метода text, который возвращает QString.

Нужно явное преобразование QString в QByteArray (сериализация), например в байты формата utf8.

Код
C++ (Qt)
serialPort.write(this->ui->txtInput->text().toUtf8() );
 

При приеме байт необходимо делать обратное преобразование из байт в текст (десериализацию) с помощью метода QString::fromUtf8.


Название: Re: Работа с ком-портом в Qt
Отправлено: Uhbif от Ноябрь 09, 2023, 15:13
Спасибо вам, вы правы