2014-02-06 56 views
0

QTextEdit需要進行調整,以便它應該在每個2個符號之後放置空格,並且應該檢查這些符號是否在從0到9的集合中或從A到F. 例如,我輸入a2324Fcd並獲得A2 32 4F CD十六進制的輸入掩碼

回答

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); 
} 

注意,此實現使得難以在該行的中間編輯文本。如果這是一個問題,則需要更復雜的實施。

0

你可以做到以下幾點:

QLineEdit le; 
le.setInputMask("HH HH HH"); // Extend if more characters needed. 
le.show(); 

BTW,QTextEdit似乎不支持輸入掩碼。

+0

輸入掩碼它就像一個抽象的概念。而且我需要輸入一個六角形而不知道它們的長度。 – Mouse