概述
自定义控件1:CheckBox,选择框
首先先看效果图:
关键代码:
利用Qt中绘图事件重绘,根据需求,画checkbox外围及内部。由于这个类暂时没打算放到项目使用,所以很多参数是直接写的固定值在里面,没有添加get,set方法。
// CMCheckBox.cpp
void CMCheckBox::paintEvent(QPaintEvent *event){
QPainter painter(this);
//反锯齿
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
paintBackG(&painter);//画背景
paintIn(&painter);//画内部
}
void paintBackG(Qpainter*)
void CMCheckBox::paintBackG(QPainter* painter){
painter->save();
painter->setPen(Qt::NoPen);
painter->setBrush(QBrush(checked?checkColor:unCheckColor));
painter->drawRoundedRect(rect(), rectRadius/2, rectRadius);
painter->restore();
}
void paintIn(QPainter*)
void CMCheckBox::paintIn(QPainter* painter){
int space = 4;
int startX = 1;
painter->save();
painter->setPen(Qt::NoPen);
painter->setBrush(QBrush(slideColor));
int sliderWidth = width() / 2 - space * 2;
int sliderHeight = height() - space * 2;
if(checked){
QRect sliderRect(width()-(startX + space+sliderWidth), space, sliderWidth , sliderHeight);
painter->drawRoundedRect(sliderRect, rectRadius, rectRadius);
}else{
QRect sliderRect(startX + space, space, sliderWidth , sliderHeight);
painter->drawRoundedRect(sliderRect, rectRadius, rectRadius);
}
painter->restore();
}
注:想学习自定义控件的兄弟们,可以搜搜刘大神(liudianwu)的各种作品进行学习,同时也开源了很多控件,值得学习哦,值得推荐。
最后
以上就是尊敬画笔为你收集整理的Qt自定义控件学习自定义控件1:CheckBox,选择框的全部内容,希望文章能够帮你解决Qt自定义控件学习自定义控件1:CheckBox,选择框所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复