pyqt,按钮的border-bottom: 3px;如何让按钮下的线和文字长度一样
时间: 2024-09-09 19:13:54 浏览: 99
PyQt 是一个用于创建跨平台图形用户界面的 Python 绑定和工具集,它是基于 Qt 库的。在 PyQt 中,如果你想要调整按钮的样式,比如边框或边距,你可以使用 Qt 的样式表(Qt Style Sheets)功能,这与在网页上使用 CSS 类似。
要让 PyQt 按钮下方的边框长度与按钮文字长度一样,你可以通过设置样式表来调整。但是,需要注意的是 PyQt 的 QPushButton 并没有直接的 CSS 属性可以设置边框的四个角点的延伸。你可以通过设置整个按钮的边框样式,然后通过调整按钮的宽度和内边距(padding)来近似实现这一效果。
以下是一个简单的例子,演示如何通过样式表设置 QPushButton 的边框:
```python
from PyQt5.QtWidgets import QApplication, QPushButton, QWidget
from PyQt5.QtCore import Qt
app = QApplication([])
# 创建一个按钮
button = QPushButton('点击我',(QWidget())
# 设置按钮的样式
button.setStyleSheet('''
QPushButton {
border: 3px solid black;
border-bottom: none;
padding-bottom: 3px; /* 调整这个值来使底部的线和文字长度一样 */
}
QPushButton:hover {
border-bottom: 3px solid black;
}
''')
button.show()
app.exec_()
```
在这个例子中,我们将按钮的底部边框设置为无,并通过设置 `padding-bottom` 来调整按钮下方的空间,使其看起来像是有底部边框与文字长度一样。然而,这仍然不会得到一个真正的线,因为 PyQt 的 QPushButton 不支持直接在子元素(如文字)下方单独添加边框。
如果你需要更精细的控制,你可能需要使用自定义绘制的按钮,继承 QPushButton 并重写 paintEvent 方法,然后在该方法中使用 PyQt 的绘图 API 来绘制自定义的边框和文字。
阅读全文