Qt::Как опустить текст в QSpinBox
-
20-09-2019 - |
Вопрос
Я использую spinbox с пользовательским шрифтом, который выглядит слишком высоким в spinbox.Как мне переместить текст ниже?
Я уже переосмыслил QStyle
и уменьшил шрифт в другом виджете, но я не могу найти, где это сделать с помощью spinbox.Там должен быть QRect
куда-нибудь, где вы можете просто сдвинуть его верхнюю часть, но я не знаю и, кажется, не могу найти, где это находится.
Решение
Qt определяет QStyle::SC_SpinBoxEditField
, который, по-видимому, является тем, что вы хотите изменить.Если я правильно помню, что несколько лет назад, когда я работал со стилями, вы должны быть в состоянии подключиться к получению параметров для этого субконтроля, которые включали бы прямоугольник, в пределах которого он должен быть нарисован.Изменив это, вы можете получить желаемый результат.Если нет, то это место, с которого можно начать поиск вашего ответа.
Другие советы
Это скорее предположение, чем положительный ответ, но вы могли бы сделать это с помощью таблиц стилей:
spinbox->setStyleSheet("QSpinBox { bottom: -2px;}");
В идеале был бы субконтроль или что-то еще только для текста, но документация по таблице стилей не перечисляет ни одного из них, что может означать, что вышеизложенное будет иметь нежелательные последствия.
Вы можете сделать:
spinBox->setAlignment(Qt::AlignCenter);//Or the Align Flag that you want
Я надеюсь, что это поможет.