如何在另一个类上使用qpixmap?

时间:2017-04-06 12:17:43

标签: c++ qt qt-creator qpixmap

我尝试使用qpixmap创建QLabel图标。 这是我的功能:

void myClass::myFunction()
{
    QPixmap on_icon(":/path");

    ui.label_1.setPixmap(on_icon);
}

我的问题是我只能在myFunction中使用on_icon。如何在不同的功能上使用它,如:

void myClass::myOtherFunction()
{
    ui.label_2.setPixmap(on_icon);
}

3 个答案:

答案 0 :(得分:0)

正如Thuga评论的那样。一种可能性是使void MyClass::myFunction() { QPixmap on_icon(":/path"); ui->label_1->setPixmap(on_icon); } void MyClass::myOtherFunction() { QPixmap *on_icon = ui->label_1->pixmap(); ui->label_2->setPixmap(*on_icon); } 成为myClass的成员变量。另一种方法是使用Point方法从标签中的任何位置获取像素图。

System.Drawing.Point

答案 1 :(得分:0)

QLabel has a .pixmap property which holds the current QPixmap loaded onto it, so you could pass an image straight to the label and recover it later as needed.

Another possibility is to use a pointer to QPixmap to prevent it from going out of scope.

And as others already stated, you could make QPixmap a member variable of your class.

答案 2 :(得分:-1)

我用load()解决了我的问题 这是我的代码。

<。>文件中的

QPixmap on_icon;

在.cpp文件中

myClass::myClass
{
    on_icon.load(":/path");
}

void myClass::myFunction()
{
    ui->label_2->setPixmap(on_icon);
}

对于像我这样的其他人来解决这个问题

QPixmap on_icon(":/path")  

等于

 on_icon.load(":/path")