WHaierBoardWorkshopShowText内paintEvent 内将png文件绘制在窗口中心,png大小不变
时间: 2024-03-09 08:51:34 浏览: 64
好的,针对您的问题,可以参考下面的代码实现:
```python
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QPixmap
from PyQt5.QtCore import Qt
import sys
class MyWidget(QWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
self.image = QPixmap("image.png") # 加载图片
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform) # 设置平滑绘制
pixmap_size = self.image.size() # 获取图片大小
widget_size = self.size() # 获取窗口大小
x = (widget_size.width() - pixmap_size.width()) / 2 # 计算图片在窗口中心的位置
y = (widget_size.height() - pixmap_size.height()) / 2
painter.drawPixmap(int(x), int(y), self.image) # 在窗口中心绘制图片
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.resize(800, 600) # 设置窗口大小
w.show()
sys.exit(app.exec_())
```
这段代码实现了在窗口中心绘制指定图片,并且图片大小不变。其中,我们在 `__init__` 函数中加载了图片,并在 `paintEvent` 函数中进行绘制。在绘制过程中,我们先获取了图片和窗口的大小,然后计算出图片在窗口中心的位置,并使用 `drawPixmap` 函数进行绘制。最后,在 `main` 函数中创建窗口并显示。
阅读全文