QPushButton设置QIcon怎么预留白边
时间: 2023-10-09 10:12:25 浏览: 86
可以使用 `QIcon::pixmap()` 函数创建一个带有预留白边的 `QPixmap` 对象,然后将其设置给 `QPushButton`。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QPushButton
from PyQt5.QtGui import QIcon, QPixmap
app = QApplication([])
# 创建带有预留白边的 QIcon
icon = QIcon('icon.png')
pixmap = icon.pixmap(100, 100)
pixmap_with_margin = QPixmap(pixmap.size() + 20)
pixmap_with_margin.fill(Qt.transparent)
painter = QPainter(pixmap_with_margin)
painter.drawPixmap(10, 10, pixmap)
painter.end()
# 创建 QPushButton,并设置带有预留白边的 QIcon
button = QPushButton()
button.setIcon(QIcon(pixmap_with_margin))
button.show()
app.exec_()
```
在上面的代码中,我们首先使用 `QIcon::pixmap()` 函数创建一个原始的 `QPixmap` 对象,然后使用 `QPainter` 将其绘制在一个更大的 `QPixmap` 对象上,同时在绘制时保留 10 像素的边距。最后,我们将带有预留白边的 `QPixmap` 对象设置为 `QPushButton` 的图标。
阅读全文