可以使用EGL Pixmap例子测试MPSoC GPU性能。运行EGL Pixmap,要使用fbdev作为egl backend。
*painter, const QRect &rect, float factor, const QPixmap &pixmap1, const QPixmap &pixmap2); void , pixmap2); break; case 1: blindsEffect(&painter, geometry(), factor, pixmap1, pixmap2 w - pixmap2.width()) / 2; y2 = (h - pixmap2.height()) / 2; painter->drawPixmap(x1, y1, pixmap1 painter->drawPixmap(x2, y2, pixmap2, 0, 0, pixmap2.width(), ddh); x3 = (w - pixmap2.width()) pixmap1.height()) / 2; x2 = (w - pixmap2.width()) / 2; y2 = (h - pixmap2.height()) / 2;
= QPixmap(file_path) self.current_scaled_pixmap = self.original_pixmap.scaled( () scaled_rect = self.current_scaled_pixmap.rect() offset_x = (label_rect.width real_x, real_y) def draw_rectangle(self): temp_pixmap = self.original_pixmap.copy() temp_pixmap = self.original_pixmap.copy() painter = QPainter(temp_pixmap) painter.setRenderHint : self.current_scaled_pixmap = self.original_pixmap.scaled( self.image_label.size
; pixmap.load(file); pixmap= pixmap.scaled(size,size,Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); setPixmap(pixmap); } QRectF NodeUI::boundingRect() const { QRect rect = this->pixmap().rect = this->pixmap(); QRect rect = pixmap.rect(); painter->drawPixmap(rect,pixmap); //print = nodeUiPixmapLists.at(i); //QPixmap pixmap = nodeUiLists.at(i)->pixmap(); pixmap = nodeUiPixmapLists.at(i); //QPixmap pixmap = nodeUiLists.at(i)->pixmap(); pixmap
= QtGui.QPixmap() location = QtCore.QPoint() dataStream >> pixmap >> location = QtGui.QPixmap() location = QtCore.QPoint() dataStream >> pixmap >> location ): pieceItem = QtWidgets.QListWidgetItem(self) pieceItem.setIcon(QtGui.QIcon(pixmap)) pieceItem.setData(QtCore.Qt.UserRole, pixmap) pieceItem.setData(QtCore.Qt.UserRole+1 ()/2, pixmap.height()/2)) drag.setPixmap(pixmap) print("startDrag1") if drag.exec
self.setToolTip('A PySide6 GUI Application Demo') # 设置画布大小 self.pixmap = QPixmap(400 ) 画图 self.painter.drawxxxx 释放 painter 实例 self.painter.end() 刷新图形到画布 self.label.setPixmap(self.pixmap) = QPixmap(800, 600) self.pixmap.fill(Qt.GlobalColor.white) self.label.setPixmap(self.pixmap = QPixmap(800, 600) self.pixmap.fill(Qt.GlobalColor.white) self.label.setPixmap(self.pixmap (800, 600) self.pixmap.fill(Qt.GlobalColor.white) self.label.setPixmap(self.pixmap)
QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); QPixmap pixmap ; pixmap.load(":/flower.png"); ui->label->resize(pixmap.size()); this->resize(pixmap.size ());//设置窗体大小 //设置遮罩 this->setMask(pixmap.mask()); } Widget::~Widget() { delete ui; } void
QPixmap 或 QImage:pen = QPen(Qt.red) # 创建一个 QPen 对象pixmap = QPixmap(100, 100) # 创建一个 QPixmap 对象pixmap.fill = QPixmap("image.jpg")# 调整图像大小scaled_pixmap = pixmap.scaled(600, 400, aspectRatioMode=Qt.KeepAspectRatio 下面是一段实例代码:from PyQt5.QtGui import QPixmap# 加载图像文件pixmap = QPixmap("image.jpg")# 缩放图像scaled_pixmap = pixmap.scaled = 200height = 200# 剪裁图像cropped_pixmap = pixmap.copy(x, y, width, height)图片3、旋转图像旋转图像是将图像按指定角度进行旋转的操作 transform = QTransform().rotate(angle)rotated_pixmap = pixmap.transformed(transform)图片4、调整亮度和对比度调整图像的亮度和对比度可以改变图像的整体明暗和对比度水平
#include <QApplication> #include <QPushButton> const QPixmap pixmap(":/image/car.png"); int main(int , char *argv[]) { QApplication a(argc, argv); QPushButton button; button.setIcon(QIcon(pixmap 找了一遍,找到了一个有点关系的注意事项: Note: When using the native X11 graphics system, the pixmap becomes invalid when qt_pixmap_thread_test()) return; ... } static bool qt_pixmap_thread_test() { if (Q_UNLIKELY (":/Image/backspace.png"); QPushButton button; button.setIcon(QIcon(pixmap)); button.show
QPixmap pixmap = QPixmap(width, height); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); painter.setRenderHint QPixmap pixmap = QPixmap(radius, radius); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); painter.setRenderHint QPixmap pixmap = QPixmap(width, height); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); painter.setRenderHint QPixmap pixmap = QPixmap(width, height); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); painter.setRenderHint
QLabel用法 主要涉及模块:QFont, QPixMap, QFontMetric, QPainter, QTextDocument, QLabel 方法: label.setPixmap(pixmap ) label.setMask(pixmap.createMaskFromColor(Qt.red)) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 QApplication(sys.argv) font = QFont("Times New Rome", 36, QFont.Bold) fm = QFontMetrics(font) pixmap = QPixmap(fm.width(msg) + 5, fm.height() + 5) pixmap.fill(Qt.white) painter = QPainter(pixmap) document font color=red>%s" % msg) document.drawContents(painter) label = QLabel() label.setPixmap(pixmap
320) self.beginPoint = QPoint() # 起始点 self.endPoint = QPoint() # 结束点 self.pixmap = QPixmap('d:\\67.jpg') #self.pixmap.fill(Qt.lightGray) self.copt_pixmap =self.pixmap.copy 0, 128)) painter.drawPath(path) # 重绘窗口事件 def paintEvent(self, event): self.pixmap =self.copt_pixmap.copy() pp = QPainter(self.pixmap) pp.setPen(QPen(Qt.blue, 2)) # 设置画笔 self.endPoint # 在画布上画出 painter = QPainter(self) painter.drawPixmap(0, 0, self.pixmap
rotate()函数 首先来看看QPainter其它函数 void QPainter::drawPixmap ( int x, int y, int w, int h, const QPixmap & pixmap , int sx, int sy, int sw, int sh ); //绘画pixmap // x y w h:表示本身的绘画面积 //sx sy sw sh:表示pixmap 的绘画面积 void QPainter::drawPixmap ( int x, int y, const QPixmap & pixmap, int sx, int sy, int sw, int sh ); //绘画pixmap // x y 表示绘画起始位置 //sx sy sw sh:表示pixmap的绘画面积 drawTiledPixmap ( int x, int y, int width, int height, const QPixmap & pixmap, int sx = 0, int sy = 0 ); //平铺pixmap
__init__(parent)# Initialize scaling factors and original imageself.original_pixmap = None# Set the fixed = QPixmap(image_path)if self.original_pixmap:self.update_image_size() # Ensure image is resized to :self.original_pixmap = QPixmap(image_path)self.current_size = self.min_size # Reset to the minimum aspect ratioscaled_pixmap = self.original_pixmap.scaled(self.current_size, self.current_size, Qt.KeepAspectRatio , Qt.SmoothTransformation)self.setPixmap(scaled_pixmap)def resizeEvent(self, event):"""Handle window
class Button:public QWidget { Q_OBJECT public: Button(QWidget *parent, QPixmap pressed_pixmap , QPixmap released_pixmap); signals: void clicked(); private: QPixmap m_pressed; QPixmap /button.cpp #include “button.h” #include <QPainter> Button::Button(QWidget *parent, QPixmap normal_pixmap , QPixmap released_pixmap) :QWidget(parent),m_normal(normal_pixmap),m_released(released_pixmap),
320) self.beginPoint = QPoint() # 起始点 self.endPoint = QPoint() # 结束点 self.pixmap = QPixmap(self.rect().size()) self.pixmap.fill(Qt.lightGray) self.copt_pixmap =self.pixmap.copy 0, 128)) painter.drawPath(path) # 重绘窗口事件 def paintEvent(self, event): self.pixmap =self.copt_pixmap.copy() pp = QPainter(self.pixmap) pp.setPen(QPen(Qt.blue, 2)) # 设置画笔 self.endPoint # 在画布上画出 painter = QPainter(self) painter.drawPixmap(0, 0, self.pixmap
提前约定: pixmap是QPixmap类型的变量 image是QImage类型的变量 QPixmap=>QImage image = pixmap.toImage() QImage=>QPixmap pixmap=QPixmap.fromImage(image) Opencv=>Qimage 方法一: def Opencv2QImage(opencv_img): width = opencv_img.shape [1] #获取图片宽度 height = opencv_img.shape[0] #获取图片高度 pixmap = QPixmap(width, height) #根据已知的高度和宽度新建一个空的 QPixmap, image = pixmap.toImage() #将pximap转换为QImage类型的qimg #循环读取cv_image的每个像素的r,g,b值,构成qRgb对象 ): qimg = pixmap.toImage() temp_shape = (qimg.height(), qimg.bytesPerLine() * 8 // qimg.depth
其核心是:把一个窗口部件渲染到一个脱屏pixmap(off- screen pixmap)中,然后再把这个pixmap复制到显示屏幕上。这样做的目的是用于消除屏幕的闪烁并且因而界面会显得更漂亮。 void SYSZUXArrow::refreshPixmap() { pixmap->fill(this,0,0); this_width=width();//控件的宽度 this_height ->fill(this,0,0);函数使用this控件的背景色或背景图片来填充当前脱屏的这个pixmap,后面两个参数是偏移量,也就是this左上角的点映射到pixmap上的哪里。 void SYSZUXArrow::paintEvent(QPaintEvent *) { QPainter painter(this); painter.drawPixmap(0,0,*pixmap ); } 3、 通过把pixmap复制到窗口部件的(0,0)位置来完成整个图形的绘制工作。
__init__(parent) self.thread = RenderThread() self.pixmap = QtGui.QPixmap() self.pixmapOffset painter = QtGui.QPainter(self) painter.fillRect(self.rect(), QtCore.Qt.black) if self.pixmap.isNull if self.curScale == self.pixmapScale: painter.drawPixmap(self.pixmapOffset, self.pixmap () + (self.pixmap.width() - newWidth) / 2 newY = self.pixmapOffset.y() + (self.pixmap.height exposed = exposed.mapRect(self.rect()).adjusted(-1, -1, 1, 1) painter.drawPixmap(exposed, self.pixmap
接口获取指定屏幕; Qt5使用QScreen 的grabWindow接口获取指定屏幕; QApplication::desktop()获取根窗口; QUuid::createUuid()产生唯一ID; pixmap.save argv[]) { QApplication a(argc, argv); #if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) QPixmap pixmap QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) QScreen *screen = QGuiApplication::primaryScreen(); QPixmap pixmap arg(QUuid::createUuid().toString()); pixmap.save(name); return 0; } qmake文件 QT += core equals