我正在使用QlineEdit制作名称字段。我希望输入此字段中的条目,使每个单词的第一个字符始终为大写。我不知道如何设置输入掩码,任何人都可以请帮助我.. thnx提前..
答案 0 :(得分:4)
我不确定inputMask
,但你可以通过继承QValidator来完成,或者你可以使用QRegExpValidator。
答案 1 :(得分:0)
您可以继承QLineEdit并覆盖keyPressEvent
。 QValidator主要用于禁止输入错误而不是生成好的输入,但对于这个简单的情况,fixup
可能会这样做。
答案 2 :(得分:0)
这只是我提出的一个快速解决方案,当然还有更好的解决方案(例如,实现您自己的行编辑),但这在我测试时有效。
这是 SLOT :
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 ) ) );