Russian Qt Forum
Ноябрь 22, 2024, 04:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с ком-портом в Qt  (Прочитано 1180 раз)
Uhbif
Новичок

Offline Offline

Сообщений: 10


Просмотр профиля
« : Ноябрь 09, 2023, 11:12 »

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

Сообщений: 584


Просмотр профиля
« Ответ #1 : Ноябрь 09, 2023, 14:55 »

Здесь имеется несоответствие входящих параметров метода write, который принимает const char * или QByteArray, и результата метода text, который возвращает QString.

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

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

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

Offline Offline

Сообщений: 10


Просмотр профиля
« Ответ #2 : Ноябрь 09, 2023, 15:13 »

Спасибо вам, вы правы
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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