Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-43450

QMacStyle on Yosemite: QStyle::drawPrimitive(QStyle::PE_IndicatorCheckBox, ...) draws in wrong place when not active

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P4: Low
    • None
    • 5.4.0
    • GUI: Look'n'Feel
    • None
    • Qt 5.4.0, OS X 10.10.1
    • macOS

    Description

      Using QStyle::drawPrimitive with QMacStyle on Yosemite (OS X 10.10.1) with QStyle::PE_IndicatorCheckBox the checkbox is drawn at the origin instead of at the place requested by option.rect when option.state lacks QStyle::State_Active.

      The attached project shows the problem. It draws three checkboxes and three rectangles to show where they should be drawn. One has State_Active turned on, and it draws in the correct place. The other two do not have State_Active turned on. One is drawn at the origin, not in the rectangle requested. The third uses a trick to work around the problem: it draws at the origin into a painter that has been translated to compensate. That one draws in the correct place.

      Attachments

        1. ActiveCheckboxes.png
          32 kB
          John Weeks
        2. BadQCheckboxes.png
          22 kB
          John Weeks
        3. CheckboxBug.zip
          4 kB
          John Weeks
        4. InactiveCheckboxes.png
          25 kB
          John Weeks

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              bachewii Jens
              johnweeks John Weeks
              Votes:
              2 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes