Вопрос

Я использую 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

Я надеюсь, что это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top