QRect ItemDelegate::CheckBoxRect(const QStyleOptionViewItem &viewItemStyleOptions) const { QStyleOptionButton checkBoxStyleOption; QRect checkBoxRect=QApplication::style()->subElementRect(QStyle::SE_CheckBoxIndicator,&checkBoxStyleOption); QPoint checkBoxPoint(viewItemStyleOptions.rect.x()+viewItemStyleOptions.rect.width()/2-checkBoxRect.width()/2, viewItemStyleOptions.rect.y()+viewItemStyleOptions.rect.height()/2-checkBoxRect.height()/2); return QRect(checkBoxPoint, checkBoxRect.size()); }
QRect CheckBoxDelegate::CheckBoxRect(const QStyleOptionViewItem &option) const{ //绘制按钮所需要的参数 QStyleOptionButton checkBoxStyleOption; //按照给定的风格参数 返回元素子区域 QRect checkBoxRect = QApplication::style()->subElementRect( QStyle::SE_CheckBoxIndicator, &checkBoxStyleOption); //返回QCheckBox坐标 QPoint checkBoxPoint(option.rect.x() + option.rect.width() / 2 - checkBoxRect.width() / 2, option.rect.y() + option.rect.height() / 2 - checkBoxRect.height() / 2); //返回QCheckBox几何形状 return QRect(checkBoxPoint, checkBoxRect.size()); }