QSlider с галочками не правильно нарисован - PullRequest
0 голосов
/ 19 июня 2019

Включение галочек для QSlider, похоже, портит sizeHint самого слайдера.

Рассмотрим этот простой код:

#include <QApplication>

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   QSlider ds{Qt::Horizontal};

   ds.setRange(0, 100);
   ds.setTickPosition(QSlider::TicksAbove);
   ds.setTickInterval(20);
   ds.show();

   return a.exec();
}

и вот как это делается:

enter image description here

обратите внимание, как ползунок обрезается ниже.

это поведение, конечно, тоже самое в сложном виджете:

enter image description here

Изменение размера окна позиции первого слайдера не следует за самим слайдером.

enter image description here

Итак, вопрос в том, как правильно отрисовать QSlider с включенными галочками?

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Практический способ, который я нашел для решения этой проблемы, состоит в том, чтобы вручную установить минимальный размер для минимального размера, чтобы избежать неправильного рендеринга:

ds.setMinimumHeight(30);
0 голосов
/ 19 июня 2019

Я бы порекомендовал добавить VerticalSpacers в top и bottom , для которых установлено значение " расширение ", чтобы ползунокзажатПоэтому, когда вы изменяете размер всего виджета, для вертикальных изменений ползунок остается минимальной высоты , но для горизонтальных изменений он расширяется (по крайней мере, это то, чего я ожидаю, чего вы хотите достичь).

...