Qt:: Как опустить текст в QSpinBox

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

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

3 ответа

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам