Как избежать обрезки текста для QPushButton с помощью borderimage

Я стилизую QPushButton с изображением границы с рамкой 28 пикселей (для действительно круглых углов). Вот так:

#MyApp QPushButton
{
    margin:0;
    padding: 0;
    border:0;
    border-image: url(:/graphics/button_brand_up.png) 28 28 28 28 stretch stretch;
    border-top: 28px transparent;
    border-bottom: 28px transparent;
    border-right: 28px transparent;
    border-left: 28px transparent;
}

Однако кажется, что когда кнопка визуализируется, текстовая метка на кнопке обрезается до внутреннего фрагмента изображения границы. В моем случае это оказывается катастрофическим:

введите здесь описание изображения

Как это исправить, чтобы текст отображался по всей поверхности кнопки, включая границы?


person Lennart Rolland    schedule 05.07.2014    source источник


Ответы (1)


Это оказалось проще и понятнее, чем предполагалось вначале.

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

#MyApp QPushButton
{
    margin:0;
    padding: -28px; /* THIS SOLVED IT */
    border:0;
    border-image: url(:/graphics/button_brand_up.png) 28 28 28 28 stretch stretch;
    border-top: 28px transparent;
    border-bottom: 28px transparent;
    border-right: 28px transparent;
    border-left: 28px transparent;
}

Теперь кнопка выглядит правильно:

введите здесь описание изображения

person Lennart Rolland    schedule 05.07.2014