QPixmap wird hauptsächlich zum Zeichnen verwendet und ist für die Bildanzeige optimiert. QImage ist hauptsächlich für Bild-E/A, Bildzugriff und Pixeländerung konzipiert. Wenn Sie jedoch QPixmap zum Laden großer Bilder verwenden, belegt es viel Speicher und eignet sich zum Laden kleiner Bilder. Ein Bild mit einer Größe von mehreren zehn K wird nach dem Laden um ein Vielfaches vergrößert.
Wenn das Bild zu groß ist, können Sie es mit QImage laden und es dann in QPixmap konvertieren, damit der QPixmap-Zeichnungseffekt am besten ist.
void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QPixmap pix; pix.load(“D:/1.jpg”); painter.drawPixmap(0,0,50,50,pix); //在(0,0)点起始的宽高均为50的句型中显示图片 painter.translate(50,50); //将起始点改为(50,50) painter.drawPixmap(0,0,50,50,pix); //在(50,50)起始的宽高为50的矩形中显示图片 }
void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QPixmap pix; pix.load(“D:/1.jpg”); painter.drawPixmap(0,0,50,50,pix); //在(0,0)点起始的宽高均为50的句型中显示图片 qreal wid = pix.width(); //获取图像的宽高 qreal hei = pix.height(); pix = pix.scaled(wid*2,hei*2,Qt::KeepAspectRatio);//将图片宽高扩大两倍,且在矩形内保持宽高比值 painter.drawPixmap(50,50,pix); }
void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QPixmap pix; pix.load(“D:/1.jpg”); painter.translate(50,50); //将旋转中心改为(50,50) painter.rotate(90); //顺时针旋转90度 painter.translate(-50,-50); painter.drawPixmap(0,0,50,50,pix); }
void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QPixmap pix; pix.load(“D:/1.jpg”); painter.drawPixmap(0,0,50,50,pix); painter.shear(0.5,0) ;//横向扭曲 painter.drawPixmap(50,0,50,50,pix); painter.shear(0,0.5);//纵向扭曲 painter.drawPixmap(0,50,50,50,pix); painter.shear(0.5,0.5);//同时横纵扭曲 painter.drawPixmap(50,50,50,50,pix); }
Das obige ist der detaillierte Inhalt vonSo verwenden Sie QPixmap in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!