工程目錄如下
建立乙個 基於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的正整數...