Преобразование Qchar * в char *

Я создаю приложение Qt Gui для мониторинга данных из последовательного порта. Я использую qextserialport библиотека. Вот проблема, с которой я столкнулся.

void MainWindow::onDataAvailable()
{
QString data_ser,data_trimmed;
port->readLine(data_ser.data(),0);
data_trimmed = data_ser.trimmed();
ui->textEdit->append(data_trimmed);
}

readLine Первый аргумент метода должен иметь тип char*Как конвертировать QChar* вернулся data_ser.data() в char*.Я мог бы использовать std::string вместо QString но объекты Qt GUI лучше совместимы с QString, и мне нужно trimmed метод тоже.

Вот ошибка, которую я получаю:

нет соответствующей функции-члена для вызова readLine.
нет известного преобразования из ‘QChar *’ в ‘char *’ для 1-го аргумента.

Как решить это ??

0

Решение

Это немного сложно, потому что вам нужно выделить место для readline () для копирования.

Вы можете создать QString с начальный размер но лично я выделил бы char * с фиксированным разумным размером буфера, а затем создал бы QString из этого — это делает его намного более понятным при отладке.

2

Другие решения

Вы не можете или, по крайней мере, не хотите (конечно, в C ++ вы можете привести QChar * к char *, но это не заставит его работать). Просто прочитайте данные в QByteArray, а затем преобразуйте их в QString.

3

По вопросам рекламы [email protected]