如何从QTextEdit中检索单个字符?

时间:2011-02-24 23:52:49

标签: c++ arrays qt qt4 textbox

我有以下字符数组:

char mychars[SIZE];

我想将QTextEdit中的一个字符复制到该数组中。 我试过了:

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

但我得到的错误如下:

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

4 个答案:

答案 0 :(得分:2)

您需要使用toPlainText()从文本编辑中恢复plain text

要将QString转换为字符,请使用类似

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

针对您的具体情况

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

应该有用。

答案 1 :(得分:2)

您可以使用以下方法检索QTextEdit中的文本:

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

编辑:

if(text.size()>0){
    mychars[0] = text[0].toAscii(); // assuming your text is ascii
}

答案 2 :(得分:0)

您当前正在尝试将QTextEdit对象插入到字符数组中,然后再插入文本编辑的inputcontext。您需要获取构成文本编辑内容的QString选择所需字符的索引并将其转换为char然后插入它。

你为什么要这样做?

答案 3 :(得分:0)

  1. Qt中的大多数方法都使用QString,所以你想要阅读它们。
  2. 如果要将1个char放入char数组中,则必须指定所需的char,即char在字符串中的位置。

    mychars [i] = this-> ui-> textedit-> toPlainText()。toStdString()。c_str()[0]