当我像这样直接写出图像路径时
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));
}
答案 0 :(得分:1)
你得到什么错误?猜测可能是:
QPixmap构造函数将QString作为参数。它直接放入字符串时有效,因为它是一个c字符串(char *),而QString有一个构造函数,它将一个c字符串作为输入。但没有构造函数将std :: string作为输入。
所以:
1)将你的字符串定义为c-strings。
或
2)在调用QPixmap之前将std :: strings转换为c-strings:
QPixmap imgBtry(img50.c_str());