0
QTextEdit需要進行調整,以便它應該在每個2個符號之後放置空格,並且應該檢查這些符號是否在從0到9的集合中或從A到F. 例如,我輸入a2324Fcd並獲得A2 32 4F CD十六進制的輸入掩碼
QTextEdit需要進行調整,以便它應該在每個2個符號之後放置空格,並且應該檢查這些符號是否在從0到9的集合中或從A到F. 例如,我輸入a2324Fcd並獲得A2 32 4F CD十六進制的輸入掩碼
您可以手動實現這一行爲:
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);
}
注意,此實現使得難以在該行的中間編輯文本。如果這是一個問題,則需要更復雜的實施。
你可以做到以下幾點:
QLineEdit le;
le.setInputMask("HH HH HH"); // Extend if more characters needed.
le.show();
BTW,QTextEdit
似乎不支持輸入掩碼。
輸入掩碼它就像一個抽象的概念。而且我需要輸入一個六角形而不知道它們的長度。 – Mouse