У меня есть несколько QPushButton
s, которые расположены рядом друг с другом. Каждая кнопка имеет отступы 8px слева и справа. Когда один из них имеет фокус, я меняю фоновый цвет. До сих пор это выглядит прекрасно:Qt CSS border + padding, кажется, обрезает текст
В дополнение к изменению фона цвета я хочу применить границу 2px белого цвета. Когда я это делаю, текст кажется отрезанным размером моей границы. Так с границей 2px это выглядит следующим образом:
Когда я увеличить пограничную величину, например, 4px мой текст полностью исчезает, потому что кнопка не увеличивает это размер правильно.
Я использую следующий CSS в Qt:
QPushButton {
background-color: transparent;
border-style: none;
font: bold 12px;
color: white;
padding-left: 8px;
padding-right: 8px;
}
QPushButton:focus {
background-color: blue;
border-style: solid;
border-width: 2px;
border-color: white;
}
Edit, Решение от Rushi: Идея заключается в том, чтобы определить границу для кнопки оригинальной (не сфокусированного) с прозрачным цветом. Когда он получает фокус, ширина кнопки, по-видимому, вычисляется правильно. Я не знаю, почему Qt вычисляет его правильно в этом случае, но это работает для меня :-)
CSS с исправлением:
QPushButton {
background-color: transparent;
/* we define our border here but with transparent color */
border-style: solid;
border-width: 2px;
border-color: transparent;
font: bold 12px;
color: white;
padding-left: 8px;
padding-right: 8px;
}
QPushButton:focus {
background-color: blue;
border-color: white;
}
Это не для меня ясно, почему вы используете pading? Может быть, вы должны использовать маржу? – Evgeny
Вы пытались добавить 'box-sizing: border-box' в ваш css ?? –
@Suresh Ponnukalai afaik Qt не поддерживает 'border-box' – Evgeny