对QT控件QLineEdit进行限制输入

问题遇到的现象和发生背景

命名规范问题,对控件输入字符

问题相关代码,请勿粘贴截图
ui->lineEdit->setAttribute(Qt::WA_InputMethodEnabled, false);
    QRegExp rx("^[A-Za-z0-9_]+$");
    QRegExpValidator *latitude = new QRegExpValidator(rx, this);
    ui->lineEdit->setValidator(latitude);
我想要达到的结果

第一个字符是字母后面可以是数字以及下划线

参考一下

QRegExp rx("[a-zA-Z0-9][a-zA-Z0-9.-]+$");/限制第一位只能输a-zA-Z0-9,之后只能输入a-zA-Z0-9.-这几类字符/

QValidator *vali=new QRegExpValidator(rx,ui.lineEdit_host1);
ui.lineEdit_host1->setValidator(vali);
ui.lineEdit_host2->setValidator(vali);
ui.lineEdit_host1->setMaxLength(128);//限制输入长度,最大为128
ui.lineEdit_host2->setMaxLength(128);
QRegExp regx("[0-9]+$");//只能输入数字
QValidator *validator=new QRegExpValidator(regx,ui.lineEdit_port1);
ui.lineEdit_port1->setValidator(new QIntValidator(0,65535,ui.lineEdit_port1));
ui.lineEdit_port2->setValidator(new QIntValidator(0,65535,ui.lineEdit_port2));
ui.lineEdit_port1->setMaxLength(5);
ui.lineEdit_port2->setMaxLength(5);
ui.lineEdit_HttpPort->setValidator(new QIntValidator(0,65535,ui.lineEdit_HttpPort));
ui.lineEdit_HttpPort->setMaxLength(5);
ui.lineEdit_ProxyPort1->setMaxLength(5);
QRegExp regx2("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");//IP格式正则表达式,只能按照IP地址格式输入。
QValidator *validator2=new QRegExpValidator(regx2,ui.lineEdit_HttpHost);
ui.lineEdit_HttpHost->setValidator(validator2);    
ui.lineEdit_Dns1->setValidator(validator2);

QRegExp rx("^[A-Za-z][0-9_]+$");
正则表达式速查 正则表达式举例 正则表达式学习 (4页A4纸) http://download.csdn.net/detail/zhao4zhong1/1808549