QPixmap不使用存储在变量中的图像路径

时间:2016-08-11 10:45:41

标签: c++ qt qt4 qpixmap

当我像这样直接写出图像路径时

QPixmap imgBtry("/some/path/resources/Battery100.png"); 

它完美地工作但是当我将路径存储在变量中时它不起作用。我该怎么办?以下是完整的代码。

//global variables
std::string path;
std::string img100 = "/some/path/resources/Battery100.png";
std::string img75 = "/some/path/resources/Battery75.png";
std::string img50 = "/some/path/resources/Battery50.png";
std::string img25 = "/some/path/resources/Battery25.png";

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QPixmap imgBtry(img50);
    ui->label_2->setPixmap(imgBtry.scaled(50,50,Qt::IgnoreAspectRatio,Qt::FastTransformation));
}

1 个答案:

答案 0 :(得分:1)

你得到什么错误?猜测可能是:

QPixmap构造函数将QString作为参数。它直接放入字符串时有效,因为它是一个c字符串(char *),而QString有一个构造函数,它将一个c字符串作为输入。但没有构造函数将std :: string作为输入。

所以:

1)将你的字符串定义为c-strings。

2)在调用QPixmap之前将std :: strings转换为c-strings:

QPixmap imgBtry(img50.c_str());