qt样式表实现不管QPushButton宽高如何变化 按钮左右侧始终是半圆形
时间: 2024-03-26 14:41:16 浏览: 102
可以使用下面这段样式表代码实现不管 `QPushButton` 宽高如何变化,按钮左右侧始终是半圆形:
```
QPushButton {
border: none; /* 去掉默认边框 */
border-radius: 999px; /* 设置一个很大的圆角半径 */
padding: 0px; /* 去掉默认内边距 */
}
QPushButton::left {
border-top-right-radius: 0px; /* 左侧按钮右上角半径为0 */
border-bottom-right-radius: 0px; /* 左侧按钮右下角半径为0 */
}
QPushButton::right {
border-top-left-radius: 0px; /* 右侧按钮左上角半径为0 */
border-bottom-left-radius: 0px; /* 右侧按钮左下角半径为0 */
}
```
这里的关键是设置一个很大的圆角半径(例如 999px),然后使用伪状态选择器 `::left` 和 `::right` 分别设置左侧和右侧的圆角半径为0,从而实现左右两侧为半圆形的效果。同时,还需要去掉默认边框和内边距,从而使得按钮的大小完全由内容决定,不会受到样式的影响。
相关问题
qt样式表实现按钮自动圆角 不管按钮如何变化 左右两侧都是半圆形
可以使用下面这段样式表代码实现按钮自动圆角:
```
QPushButton {
border-radius: 10px; /* 设置默认圆角半径为10像素 */
}
QPushButton::left {
border-top-right-radius: 0px; /* 左侧按钮右上角半径为0 */
border-bottom-right-radius: 0px; /* 左侧按钮右下角半径为0 */
}
QPushButton::right {
border-top-left-radius: 0px; /* 右侧按钮左上角半径为0 */
border-bottom-left-radius: 0px; /* 右侧按钮左下角半径为0 */
}
```
这里使用了 `border-radius` 属性来设置按钮的默认圆角半径,然后使用伪状态选择器 `::left` 和 `::right` 分别设置左侧和右侧的圆角半径为0,从而实现左右两侧为半圆形的效果。注意,这里的 `::left` 和 `::right` 样式必须写在 `QPushButton` 样式的后面。
阅读全文