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

QTreeView: setting style sheet that specifies padding causes the corner widget to remain in view with only 1 scrollbar visible

    XMLWordPrintable

Details

    Description

      To reproduce, set the following stylesheet on a QTreeView:-

      #include <QtGui>

      #include "treemodel.h"

      int main(int argc, char *argv[])
      {
      Q_INIT_RESOURCE(simpletreemodel);

      QApplication app(argc, argv);

      QFile file(":/default.txt");
      file.open(QIODevice::ReadOnly);
      TreeModel model(file.readAll());
      file.close();

      QTreeView view;
      QString ss =
      " QTreeView

      { border: 0px; " " background-color: rgb(255, 255, 255); " " padding: 15px; " " border: 1px solid rgb(208, 208, 208); border-radius: 3px;}

      "
      " "
      " QScrollBar

      { \ background: #f4f4f4; \ width: 16px; \ height: 16px; \ }

      \
      QScrollBar::add-page, QScrollBar::sub-page

      { \ background: transparent; \ }

      \
      QScrollBar::add-page:pressed, QScrollBar::sub-page:pressed

      { \ background: rgb(11,11,11); \ }

      \
      QScrollBar::add-line, QScrollBar::sub-line

      { \ border-style: none; \ height: 16px; \ width: 16px; \ subcontrol-origin: margin; \ }

      \
      QScrollBar:vertical

      {\ margin: 16px 0 16px 0;\ }

      \
      \
      QScrollBar::handle:vertical

      {\ min-height: 15px;\ border-image: url(:/sksb/Resources/vertical_handle.png) 2;\ border: 2;\ }

      \
      QScrollBar::add-line:vertical

      { subcontrol-position: bottom; }

      \
      QScrollBar::sub-line:vertical

      { subcontrol-position: top; }

      \
      QScrollBar:horizontal

      { \ margin: 0 16px 0 16px; \ }

      \
      QScrollBar::handle:horizontal

      { \ min-width: 15px; \ border-image: url(:/sksb/Resources/horizontal-handle.png) 2; \ border: 2; \ }

      \
      QScrollBar::add-line:horizontal

      { subcontrol-position: right; }

      \
      QScrollBar::sub-line:horizontal

      { subcontrol-position: left; }

      \
      QScrollBar:up-arrow:vertical

      { image: url(:/sksb/Resources/up-arrow.png);}

      \
      QScrollBar:up-arrow:vertical:pressed

      { image: url(:/sksb/Resources/up-arrow-pressed.png);}

      \
      QScrollBar:down-arrow:vertical

      { image: url(:/sksb/Resources/down-arrow.png);}

      \
      QScrollBar:down-arrow:vertical:pressed

      { image: url(:/sksb/Resources/down-arrow-pressed.png);}

      \
      QScrollBar:left-arrow:horizontal

      { image: url(:/sksb/Resources/left-arrow.png);}

      \
      QScrollBar:left-arrow:horizontal:pressed

      { image: url(:/sksb/Resources/left-arrow-pressed.png); }

      \
      QScrollBar:right-arrow:horizontal

      { image: url(:/sksb/Resources/right-arrow.png); }

      \
      QScrollBar:right-arrow:horizontal:pressed

      { image: url(:/sksb/Resources/right-arrow-pressed.png); }

      \
      " ;

      view.setStyleSheet(ss);
      view.setModel(&model);
      view.setWindowTitle(QObject::tr("Simple Tree Model"));
      view.show();
      return app.exec();
      }

      Now resize the widget so that one of the scrollbars is gone. The corner widget remains in view.

      Attachments

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

        Activity

          People

            goffart Olivier Goffart (closed Nokia identity) (Inactive)
            cattell Matthew Cattell (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes