如何保存一个标签的QPixmap,该标签由其上方的一个具有QPixmap的标签组成



我继承了QLabel来创建我自己的QLabel类,代码如下:

class myLabel : public QLabel
{
    Q_OBJECT
public:
    explicit myLabel(QWidget *parent=nullptr): QLabel(parent){ setFrameShape(QFrame::Box);}
    QLabel insideLabel;
};

正如你所看到的,我的班级里有一个QLabel成员。现在,我所做的是创建我的类的对象,并使用setPixmap()为其分配一个图像,还为我的类中的QLabel成员分配了一个图像。代码如下:

    QFile file("file.png");
    ui->setupUi(this);
    //Creatig instance of my QLabel class and setting one image to it.
    myLabel *label=new myLabel(this);
    label->setPixmap(QPixmap("someImagePath"));
    
    //Assining image to my class QLabel member.
    label->insideLabel.setPixmap(QPixmap("someImagePath"));
    
    //saving file.
    label->pixmap()->save("imageName","png",-1);

因此,当我保存图像时,它只保存我的QLabel类对象QPixmap的图像,而不是保存我的两个标签图像,因为insideLabel位于我的标签类对象上方,因为它是它的成员。如何将标签的两个图像保存为一个图像。

您的代码并没有试图保存QLabel,而是试图保存QLabel的pixmap属性,这是两件非常不同的事情
QLabel是一个可以在绘画设备上渲染的小部件。您应该阅读有关QWidget子系统的文档:Qt小工具模块

我看到您的代码有一些问题,内部小部件没有父级,在您的情况下,我认为这是一个问题,但解释这一点超出了您的问题。

如果你想要的是将小部件渲染成一个图像文件,你可以这样做:

 QPixmap pixmap(Widget->size());
 Widget->render(&pixmap);
 pixmap.save("widget_render_file.png");

如果你想构图,你可以直接在附着在像素图上的画家上绘制,如下所示:

 QPixmap pixmap(100,100);
 QPainter painter(pixmap);
 painter.setPen (...);
 painter.drawPixmap (...);
 painter.end();
 pixmap.save(...);

你还应该查看QPainter和QPixmap的文档,那里有很多有用的绘图/绘画功能。

我刚刚将Widget窗口的所需部分保存为图像,下面是我的代码

    label=new myLabel(this);
    label->setGeometry(50,50,300,300);
    label->setPixmap(QPixmap("/home/vinay/Pictures/exp.png").scaled(label->width(),label->height()));
    label->insideLabel=new QLabel(this);
    label->insideLabel->setGeometry(50,50,50,50);
    label->insideLabel->setPixmap(QPixmap("/home/vinay/Pictures/exp2.png"));
    label->insideLabel->setFrameShape(QFrame::Box);
    label->insideLabel->setLineWidth(3);
    //Assining image to my class QLabel member.
    //saving file.
    label->pixmap()->save("imageName","png",-1);
    //ui->myWidget->grab().save("image.png");
    QRect r(50,50,300,300);
    Widget::grab(r).save("image.png");

相关内容

  • 没有找到相关文章

最新更新