QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
    QRegExpValidator v(rx, 0);
    ui->lineEdit->setValidator(&v);
    ui->lineEdit->setInputMask("000.000.000.000");
以上是本人测试代码,结果还可以。
判断合法IP的QT正则表达式:
bool IsIPaddress(QString ip)
{
    QRegExp rx2("(//d+)(//.)(//d+)(//.)(//d+)(//.)(//d +)");
    int pos = rx2.indexIn(ip);
    if(pos>-1)
    {
         for(int i=0;i<4;i++)
        {
            if( rx2.cap(i*2+1).toInt()>=255 )
            {
                QMessageBox::information(this, tr("错误"), tr("IP地址错误"));
                return false;
            }
        }
        if(rx2.cap(7).toInt()==0)
        {           
            QMessageBox::information(this, tr("错误"), tr("IP地址错误"));
            return false;
        }
        if(rx2.cap(7).toInt()==0)
        {
            QMessageBox::information(this, tr("错误"), tr("IP地址错误"));
            return false;
        }
    }
    else
    {
        QMessageBox::information(this, tr("错误"), tr("IP地址错误"));
        return false;
    }
    return true;
}
判断IP地址更简单的方式是:
    QRegExp rx2("^([1]?/d/d?|2[0-4]/d|25[0-5])/.([1]?/d/d?|2[0-4]/d|25[0-5])/.([1]?/d/d?|2[0-4]/d|25[0-5])/.([1]?/d/d?|2[0-4]/d|25[0-5])$")
    if( !rx2.exactMatch(ip) )
    {
          QMessageBox::information(this, tr("错误"), tr("ip地址错误"));
          return false;
    }