QLineEdit 實現ip輸入

2021-10-04 19:45:18 字數 2269 閱讀 3968

工程目錄如下

建立乙個 基於qwidget 的空白工程,新增 c++ class ,也就是 iplineedit.cpp 和 iplienedit.h 這兩個檔案, 新新增的用於繼承 qlineedit 類重新寫乙個用於ip輸入的類

iplineedit.cpp 檔案內容: 

#include "iplineedit.h"

#include #include #include #include #include #include iplineedit::iplineedit(qwidget *parent)

: qlineedit(parent)

|2[0-4][0-9]|1?[0-9])");

qhboxlayout *phbox = new qhboxlayout(this);

phbox->setspacing(10);

phbox->setcontentsmargins(0, 0, 0, 0);

for (int i = 0; i < 4; i++)

this->setreadonly(true);

}iplineedit::~iplineedit()

void iplineedit::paintevent(qpaintevent *event)

}int iplineedit::getindex(qlineedit *pedit)

return index;

}bool iplineedit::eventfilter(qobject *obj, qevent *ev)

else if (strtext.length() == 3 || strtext.length() < 3 && strtext.toint() * 10 > 255)

}else if (strtext.length() == 2 && strtext.toint() * 10 < 255)

}return qwidget::eventfilter(obj, ev);

}break;

case qt::key_backspace:

}return qwidget::eventfilter(obj, ev);

}case qt::key_left:

}return qwidget::eventfilter(obj, ev);

}case qt::key_right:

}return qwidget::eventfilter(obj, ev);

}default:

break;}}

return false;

}void iplineedit::settext(const qstring &strip)

else

}}bool iplineedit::istextvalid(const qstring &strip)

(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b");

if (!rx2.exactmatch(strip))

return false;

return true;

}qstring iplineedit::text() const

}return strip;

}

iplineedit.h 檔案:
#ifndef iplineedit_h

#define iplineedit_h

#include #include #include class iplineedit : public qlineedit

;#endif // iplineedit_h

widget.cpp檔案 :

#include "widget.h"

#include "ui_widget.h"

#include "iplineedit.h"

#include #include widget::widget(qwidget *parent) :qwidget(parent)

);timer->start(2000);

}widget::~widget()

其餘都是建立工程時的原先檔案未動

效果

控制QLineEdit的輸入範圍

1.使用正規表示式檢驗qlineedit的輸入範圍 如下 include include qlineedit lineedit new qlineedit this qregexp regexp a za z 1 9 0 9 1 9 0 9 和 1 9 d 上面的正規表示式表示只能輸入大於0的正整數...

限制QLineEdit的數值輸入範圍

在使用qlineedit輸入數值時,經常遇到限制其範圍的需要,比如角太陽高度角範圍為 90,90 經度值範圍 180,180 方位角範圍 0,360 qt提供了qintvalidator和qdoublevalidator可以限定數值輸入範圍,如使用qintvalidator限制整數的數值範圍 例1 ...

限制QLineEdit的數值輸入範圍

1.使用正規表示式檢驗qlineedit的輸入範圍 如下 include include qlineedit lineedit new qlineedit this qregexp regexp a za z 1 9 0 9 1 9 0 9 和 1 9 d 上面的正規表示式表示只能輸入大於0的正整數...