需要调整QTextEdit,使其在每2个符号后面放置空格,并检查这些符号是否在0到9或A到F的集合中。 例如,我输入a2324Fcd并获得A2 32 4F CD
答案 0 :(得分:1)
您可以手动实现此行为:
void MainWindow::on_textEdit_textChanged() {
QString text = ui->textEdit->toPlainText().toUpper();
text.replace(QRegExp("[^A-F]"), "");
QStringList tokens;
for(int i = 0; i < text.length(); i += 2) {
tokens << text.mid(i, 2);
}
ui->textEdit->blockSignals(true);
ui->textEdit->setText(tokens.join(" "));
ui->textEdit->moveCursor(QTextCursor::EndOfBlock);
ui->textEdit->blockSignals(false);
}
请注意,此实现很难在行中间编辑文本。如果这是一个问题,则需要更复杂的实现。
答案 1 :(得分:0)
您可以执行以下操作:
QLineEdit le;
le.setInputMask("HH HH HH"); // Extend if more characters needed.
le.show();
BTW,QTextEdit
似乎不支持输入掩码。