Digged thru Qt sources, found a solution for Vista:

Qt Code:
  1. class CheckBoxStyleNoFocusDrawVista: public QWindowsVistaStyle{
  2. public:
  3. void drawControl(ControlElement element, const QStyleOption *opt,
  4. QPainter *p, const QWidget *widget) const
  5. {
  6. switch (element) {
  7. case CE_CheckBox:
  8. if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
  9. QStyleOptionButton subopt = *btn;
  10. subopt.rect = subElementRect(SE_CheckBoxIndicator, btn, widget);
  11. drawPrimitive(PE_IndicatorCheckBox, &subopt, p, widget);
  12. subopt.rect = subElementRect(SE_CheckBoxContents, btn, widget);
  13. drawControl(CE_CheckBoxLabel, &subopt, p, widget);
  14. }
  15. break;
  16. default:
  17. QWindowsVistaStyle::drawControl(element, opt, p, widget);
  18. }
  19. }
  20. };
  21.  
  22. void CheckBox1::CheckBox1():QCheckBox(){
  23. setStyle(new CheckBoxStyleNoFocusDraw());
  24. }
To copy to clipboard, switch view to plain text mode 

This needs to be extended for all operating systems (Windows, XP, Vista, Mac).