QT: не может получить доступ к закрытому члену, объявленному в классе ‘QByteArray’

Я пытался создать генератор случайных фраз, который читает существительные из одного текстового файла и глаголы из другого текстового файла. Это все сработало, но сейчас я пытаюсь написать метод, который использует заглавные буквы первой буквы темы, но продолжает получать ошибки

ошибка: C2248: «QByteArray :: operator QNoImplicitBoolCast»: не может получить доступ к закрытому члену, объявленному в классе «QByteArray»

см. объявление «QByteArray :: operator QNoImplicitBoolCast»

смотрите объявление ‘QByteArray’

Я выложу код для метода (извините, если он не в правильном формате, я новичок)

    void MainWindow::returnCap(QString sub){

char *str;
QByteArray ba;
ba = sub.toLatin1();
str = ba.data();
QString firstLetter;
firstLetter = str[0];
QString cappedFirstLetter;
cappedFirstLetter = firstLetter.toUpper();
char flc; //firstLetterChar
flc = cappedFirstLetter.toLatin1();
str[0] = flc;
}

Спасибо за любую помощь!

0

Решение

Проблема в том, что вы присваиваете байтовый массив одному символу. Однако вам нужен только один символ из байтового массива:

char flc; //firstLetterChar
flc = cappedFirstLetter.toLatin1()[0];

ОБНОВИТЬ:

Я бы решил вашу проблему следующим образом:

QChar c1 = sub[0];
c1 = c1.toUpper();
sub.replace(0, 1, c1);
1

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

Вы вызываете функцию-член toLatin1, который возвращает QByteArray, Затем вы назначаете это QByteArray возражать против char переменная (не char*, просто char).

0

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