QT insert pic

I want to insert a photo into a label on QT


1
2
  QPixmap pix("C:\Users\haral\OneDrive\Documents\NY\Nyeveier.jpg");
    ui->label_Pic->setPixmap(pix.scaled(100,100,Qt::KeepAspectRatio));


I use this code
but get an error U used with no following hex digtis
At the very least, you need to escape all the \

pix("C:\\Users\\haral\\OneDrive\\Documents\\NY\\Nyeveier.jpg");
Thanks, but picture doesn't come up when I run the program
So what have you done to analyse the situation?

Do you have any evidence that pix is successfully created?
Do you have any evidence that setPixmap() is successful?

Have you used either of these things successfully anywhere else in your code?

Have you used a debugger to step through the code to make sure you're doing what you expect?

Have you tried to create a minimal project (it just contains a single label), and tried to configure that?
See http://sscce.org/


Don't expect us to be able to extrapolate what you've done wrong from just 2 lines of code and paraphrased error messages.

Example (assuming you have created the *.ui):

main.cpp:
1
2
3
4
5
6
7
8
9
10
11
12
#include "Widget.hpp"
#include <QApplication>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}


Widget.hpp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef WIDGET_HPP
#define WIDGET_HPP


#include <QWidget>
#include <QLabel>
#include <QPixmap>
#include <QVBoxLayout>

#include <memory>


namespace Ui {
class Widget;
}


class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget* parent = nullptr);
    ~Widget();

private:
    Ui::Widget* ui;
    std::unique_ptr<QLabel> label;
    std::unique_ptr<QPixmap> pix;
    std::unique_ptr<QVBoxLayout> vlay;
};


#endif // WIDGET_HPP 


Widget.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "Widget.hpp"
#include "ui_Widget.h"


Widget::Widget(QWidget* parent)
    : QWidget(parent),
      ui(new Ui::Widget)
{
    ui->setupUi(this);
    // Note: image downloaded from here: https://unsplash.com/
    // Licence:
    // All photos published on Unsplash can be used for free. You can use
    // them for commercial and noncommercial purposes. You do not need to
    // ask permission from or provide credit to the photographer or
    // Unsplash, although it is appreciated when possible.
    // More precisely, Unsplash grants you an irrevocable, nonexclusive,
    // worldwide copyright license to download, copy, modify, distribute,
    // perform, and use photos from Unsplash for free, including for
    // commercial purposes, without permission from or attributing the
    // photographer or Unsplash. This license does not include the right
    // to compile photos from Unsplash to replicate a similar or
    // competing service.
    // Credit: Photo by Blake Wisz on Unsplash
    // Your path to image ---------------------\/
    pix = std::make_unique<QPixmap>("blake-wisz-1354904-unsplash.jpg");
    label = std::make_unique<QLabel>();
    label->setPixmap(*pix);
    vlay = std::make_unique<QVBoxLayout>(this);
    vlay->addWidget(label.get());
}


Widget::~Widget()
{
    delete ui;
}


Widget.ui:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Widget</class>
 <widget class="QWidget" name="Widget">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Widget</string>
  </property>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>


My *.pro file (not relevant, just as hint):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#-------------------------------------------------
#
# Project created by QtCreator 2019-03-05T13:41:50
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = example_Qt
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

CONFIG += c++17

SOURCES += \
        main.cpp \
        Widget.cpp

HEADERS += \
        Widget.hpp

FORMS += \
        Widget.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

Topic archived. No new replies allowed.