簡體   English   中英

QPixmap:如何在addPixmap中增加圖片的大小?

[英]QPixmap: How to increase the size of the picture in addPixmap?

class MyGraphicsView(QGraphicsView):
    def __init__(self):
        super(MyGraphicsView, self).__init__()
        scene = QGraphicsScene(self)
        self.tic_tac_toe = TicTacToe()
        scene.addItem(self.tic_tac_toe)

        self.m = QPixmap("exit.png")

        scene.addPixmap(self.m)

        self.setScene(scene)
        self.setCacheMode(QGraphicsView.CacheBackground)
        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)

png已經在那里。 在滾動條中將其顯示在屏幕上時,增加尺寸的方法是什么?

目的是要有一個按鈕,單擊此按鈕后此圖片的大小應增加。

您必須使用setScale() 同樣,當您使用addPixmap()這將返回創建的QGraphicsPixmapItem

此外,縮放是一個轉換,因此它具有轉換原點,默認情況下為(0, 0) ,但是在這種情況下,更好的選擇是將其放置在圖像的中心。

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class MyGraphicsView(QGraphicsView):
    def __init__(self):
        super(MyGraphicsView, self).__init__()
        scene = QGraphicsScene(self)
        self.m = QPixmap("exit.png")
        self.item = scene.addPixmap(self.m)

        self.item.setTransformOriginPoint(self.item.boundingRect().center())

        self.setScene(scene)
        self.setCacheMode(QGraphicsView.CacheBackground)
        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)

    @pyqtSlot()
    def scale_pixmap(self):
        self.item.setScale(2*self.item.scale())

class Example(QMainWindow):
    def __init__(self):
        super(Example, self).__init__()
        centralWidget = QWidget()
        self.setCentralWidget(centralWidget)
        lay = QVBoxLayout(centralWidget)
        gv = MyGraphicsView()
        button = QPushButton("scale")
        lay.addWidget(gv)
        lay.addWidget(button)
        button.clicked.connect(gv.scale_pixmap)


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    w = Example()
    w.show()
    sys.exit(app.exec_())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM