Как получить один символ из QTextEdit? - PullRequest
2 голосов
/ 25 февраля 2011

У меня есть следующий массив символов:

char mychars[SIZE];

Я хотел бы скопировать один символ из QTextEdit в этот массив.Я пытался:

mychars[i] = this->ui->QTextEdit;
mychars[i] = this->ui->QTextEdit->inputContext();

Но я получаю такие ошибки, как:

error: invalid conversion from ‘QTextEdit*’ to ‘char’

Ответы [ 4 ]

2 голосов
/ 25 февраля 2011

Вы можете получить текст в своем QTextEdit, используя:

QString text = this->ui->QTextEdit->toPlainText();

РЕДАКТИРОВАТЬ:

if(text.size()>0){
    mychars[0] = text[0].toAscii(); // assuming your text is ascii
}
2 голосов
/ 25 февраля 2011

Вам нужно получить обычный текст обратно из редактирования текста с помощью toPlainText ().

Чтобы преобразовать QString в символы, используйте что-то вроде

const QByteArray bytes = textEdit->toPlainText().toAscii();
const char*const characters = bytes.data();

Для вашего конкретного случая

mychars[i] = this->ui->QTextEdit->toPlainText().toAscii().data()[ i ];

должно работать.

0 голосов
/ 25 февраля 2011
  1. Большинство методов в Qt используют QString, поэтому вы хотите прочитать о них.
  2. Если вы хотите поместить 1 символ в массив символов, вы должны указать, какой символ вы хотитев какой позиции символ находится внутри строки.

    mychars [i] = this-> ui-> textedit-> toPlainText (). ToStdString (). C_str () [0]

0 голосов
/ 25 февраля 2011

В настоящее время вы пытаетесь вставить объект QTextEdit в массив символов, а затем что-то вроде inputcontext текстового редактирования. Вам нужно получить QString, которая составляет содержимое редактируемого текста, выбрать индекс нужного вам символа и привести его к символу, а затем вставить его.

Почему вы пытаетесь это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...