本文使用環境為qt5.9.7+vs2015,其他環境未做測試,大同小異。
vs新建qt自定義控制項類:
自動生成解決方案檔案
.修改qiplineedit.h
#pragma once
#include #include class qiplineedit : public qlineedit
;
qiplineedit.cpp
#include "qiplineedit.h"
#include #include #include #include #include #include qiplineedit::qiplineedit(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);
}qiplineedit::~qiplineedit()
void qiplineedit::paintevent(qpaintevent *event)
}int qiplineedit::getindex(qlineedit *pedit)
return index;
}bool qiplineedit::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 __super::eventfilter(obj, ev);
} break;
case qt::key_backspace:
}return __super::eventfilter(obj, ev);
} case qt::key_left:
}return __super::eventfilter(obj, ev);
} case qt::key_right:
}return __super::eventfilter(obj, ev);
} default:
break;
} }return false;
}void qiplineedit::settext(const qstring &strip)
else }
}bool qiplineedit::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 qiplineedit::text() const
編譯生成.dll及.lib,拷貝.dll到對應vs安裝控制項目錄
拷貝qiplineedit.h及qiplineedit.cpp檔案到使用自定義控制項類的工程目錄並新增
現在我們可以在qt類介面編輯器中看到我們的控制項了,拖入直接使用。
到此ok,nice.
不過這樣也不屬於封裝,只是方便而已,後續再研究~
自定義控制項VS使用者控制項
winform中,使用者控制項 user control 繼承自 usercontrol,主要用於開發 container 控制項,container控制項可以新增其他controls控制項 自定義控制項 custom control 繼承自 control,主要用於開發windows控制項的最基本...
Qt 自定義控制項(電池)
閒著蛋疼就做了乙個簡單的自定義電池控制項。其實想了想還挺多地方可以用的啦。效果圖。通過公有方法可修改電量,設定警戒電量,設定是否正在充電,根據需要設定漸變色,圓角,步長。public bool setvalue double v bool setminvalue double v bool setm...
qt自定義控制項 2
環境 qtcreator 4.0.2 qt5.7.0 msvc 2013,32bit 步驟 1 在上篇文章的基礎上,我們在demo1自定義控制項類中新增如下 q enums m id q property qstring m id read get id write set id private q...