1

Qt のドキュメントやその他のドキュメントをオンラインで (信じられないほどの時間) 検索しましたが、答えが得られません。

「C++クラス名」を取るQLineEditを使用しています(つまり、[ab](<-大文字も)、[0-9]、およびアンダースコア(_)のみを受け入れる必要があります。どのように(盲目的に)私はそれを設定しようとしますが、うまくいきません。

1 m_classDefLayout->addRow("Class Name",m_className);
2 m_className->setValidator(m_nameValidator);
3 m_nameValidator->setRegularExpression(*m_nameRegExp);
4 //m_namePattern=();
5 m_nameRegExp->setPattern(m_namePattern);

4 行目の括弧内には何を挿入しますか? コピーして貼り付けるコードを求めているわけではありません。いくつかの例 (よく説明されているものでも) が役立つので、最終的にプロジェクトを終了します。

4

1 に答える 1

3

あなたのコードのデータ型がわからないので、簡単なサンプル コードを書きます。

QRegularExpression rx("^[A-Za-z_][A-za-z0-9]*");
QValidator *validator = new QRegularExpressionValidator(rx, this);

ui.lineEdit->setValidator(validator);

以下のリンクを読むと、正確に理解できます。

^(キャレット)のリンク

*(アスタリスク) のリンク

于 2016-10-26T04:40:53.933 に答える