Qt :: Как опустить текст в QSpinBox - PullRequest
2 голосов
/ 12 февраля 2010

Я использую spinbox с пользовательским шрифтом, который выглядит слишком высоко в spinbox. Как мне переместить текст ниже?

Я уже переопределил QStyle и уменьшил шрифт в другом виджете, но не могу найти, где это сделать с помощью spinbox. Должно быть где-то QRect, где вы можете просто переместить его верхнюю часть, но я не знаю и, похоже, не могу найти, где он находится.

Ответы [ 3 ]

2 голосов
/ 12 февраля 2010

Qt указывает QStyle::SC_SpinBoxEditField, что, по-видимому, является тем, что вы хотите изменить. Если я правильно помню несколько лет назад, когда я занимался стилями, вы должны иметь возможность получить параметры для этого субконтроля, который будет включать в себя прямоугольник, внутри которого он должен быть нарисован. Изменение, которое может получить желаемый результат. Если нет, то это место, где можно начать поиск вашего ответа.

0 голосов
/ 12 сентября 2015

Вы можете сделать:

spinBox->setAlignment(Qt::AlignCenter);//Or the Align Flag that you want

Надеюсь, это поможет.

0 голосов
/ 12 февраля 2010

Это скорее предположение, чем положительный ответ, но вы можете сделать это с помощью таблиц стилей:

spinbox->setStyleSheet("QSpinBox { bottom: -2px;}");

В идеале должен быть субконтроль или что-то только для текста, но в документации таблицы стилей нет такого списка, что может означать, что вышеприведенное будет иметь нежелательные последствия.

...