1

QlineEdit を使用して名前フィールドを作成しています。このフィールドのエントリは、すべての単語の最初の文字が常に大文字になるように入力してください。そのために入力マスクを設定する方法がわかりません。誰か助けてください..事前にthnx..

4

3 に答える 3

4

についてはわかりませんが、 QValidatorinputMaskをサブクラス化するか、 QRegExpValidatorを使用できます。

于 2011-07-05T10:40:58.000 に答える
0

これは私が思いついた簡単な解決策であり、もちろんより良い解決策もあります(たとえば、独自の行編集を実装する)が、これはテストしたとおりに機能します。

これはスロットです:

void main_window::on_line_edit_0_text_changed( QString text )
{
    QString tmp = text;

    tmp.truncate( 1 ); // tmp is now first char of your text
    tmp = tmp.toUpper();

    if( text.size() > 1 )
    {
        text.remove( 0, 1 );
        text = text.toLower();
        text.prepend( tmp );
        line_edit_0->setText( text );
    }
    else
    {
        line_edit_0->setText( tmp );
    }
}

接続:_

connect( line_edit_0, SIGNAL( textChanged( QString ) ), this, SLOT( on_line_edit_0_text_changed( QString ) ) );
于 2011-07-06T13:29:15.790 に答える
0

QLineEdit と override をサブクラス化できますkeyPressEvent。QValidator は主に、適切な入力を生成するのではなく、不適切な入力を禁止するためのものですが、この単純なケースでfixupは、おそらく十分です。

于 2011-07-05T13:20:23.600 に答える