Qt cpp再QPixmap wndBackFoucsPixmapTemp 内边距 上下左右20px的中心作为绘制区域,居中绘制pixmap a
时间: 2023-07-28 19:43:48 浏览: 267
好的,你可以使用QPainter类来实现这个功能。首先,你需要创建一个QPainter对象,并将它的绘制区域设置为wndBackFoucsPixmapTemp的中心,使用QRect类的中心点坐标和大小来计算出绘制区域。然后,你可以使用QPainter的drawPixmap函数来在绘制区域居中绘制pixmap a。
代码示例:
```
QPainter painter(&wndBackFoucsPixmapTemp);
int x = (wndBackFoucsPixmapTemp.width() - 2 * 20 - pixmap_a.width()) / 2 + 20;
int y = (wndBackFoucsPixmapTemp.height() - 2 * 20 - pixmap_a.height()) / 2 + 20;
QRect rect(x, y, pixmap_a.width(), pixmap_a.height());
painter.drawPixmap(rect, pixmap_a);
```
注意,这里的20是指内边距的大小,你可以根据实际需求进行修改。同时,还需要注意pixmap a的大小不能超过绘制区域的大小,否则会被裁剪。
相关问题
qt cpp Qpixmap 将 1920*80的图1和1920*80的图2 分别绘制到pixmap的上方和下方
可以使用`QPainter`类和`QPixmap`类来实现将两张图片绘制到一个`QPixmap`对象上的功能。
以下是实现的代码:
```cpp
QPixmap pixmap(1920, 160); // 创建1920*160的pixmap对象
pixmap.fill(Qt::white); // 将pixmap填充为白色
// 加载图像1和图像2
QPixmap image1("image1.png");
QPixmap image2("image2.png");
QPainter painter(&pixmap); // 创建一个QPainter对象
painter.drawPixmap(0, 0, image1); // 将image1绘制到pixmap的上方
painter.drawPixmap(0, 80, image2); // 将image2绘制到pixmap的下方
```
在上面的代码中,我们首先创建了一个1920*160的`QPixmap`对象,并将其填充为白色。接着,我们使用`QPixmap`类加载了图像1和图像2,并创建了一个`QPainter`对象。然后,我们使用`drawPixmap()`函数将图像1绘制到pixmap的上方,并将图像2绘制到pixmap的下方。
最后,我们可以将这个pixmap对象用于显示或保存。
Qt cpp 在QTableWidget单元格内居中显示 QPixmap
可以使用QTableWidgetItem来显示QPixmap,并通过setFlags()函数设置单元格内容居中显示。以下是示例代码:
```cpp
QPixmap pixmap("image.png");
QTableWidgetItem* item = new QTableWidgetItem();
item->setData(Qt::DecorationRole, pixmap);
item->setFlags(item->flags() ^ Qt::ItemIsEditable); // 禁止编辑
item->setTextAlignment(Qt::AlignCenter); // 内容居中显示
ui->tableWidget->setItem(row, column, item);
```
其中,row和column表示单元格的行和列。通过setData()函数设置QPixmap,并通过setTextAlignment()函数设置内容居中显示。setFlags()函数可以禁止单元格编辑。
阅读全文