我正在设计一个带有 28px 边框图像的 QPushButton 样式(对于真正的圆角),如下所示:
#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;
}
但是,当渲染按钮时,按钮上的文本标签似乎被剪切到边框图像的内部补丁。就我而言,这结果是灾难性的:
如何解决此问题,以便在按钮的整个表面(包括边框边缘)上呈现文本?
最佳答案
事实证明,这比最初预期的更简单、更直观。
解决方案是将按钮上的负填充设置为与边框图像半径相同,如下所示:
#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;
}
现在按钮看起来正确了:
关于qt5 - 如何避免带有 borderimage 的 QPushButton 的文本剪切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24590564/