pyqt5中去除painter.drawRect(rect),但不改变背景
时间: 2024-10-18 13:06:46 浏览: 15
在PyQt5中,如果你想要在画布上绘制矩形但不改变背景,你需要精确控制`QPainter`对象的操作。当你调用`drawRect()`时,其实是在填充矩形区域。为了避免直接改变背景,你可以选择不填充而是仅绘制边框,即使用`drawLine()`或`drawRect()`的`drawBorder()`版本。
下面是一个示例:
```python
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor
class CustomWidget(QWidget):
def paintEvent(self, event):
painter = QPainter(self)
# 设置前景色为与背景不同的颜色
painter.setPen(QColor('white')) # 或者你喜欢的任何颜色
# 只画出矩形的边框,不填充
painter.drawRect(event.rect(), Qt.SolidLine)
if __name__ == "__main__":
app = QApplication([])
widget = CustomWidget()
widget.show()
app.exec_()
```
在这个例子中,`drawRect()`的第一个参数是你要绘制矩形的区域,第二个参数是线型样式,这里选`SolidLine`表示实线边框,避免了填充。
阅读全文