VD
July 30, 2020, 8:16 p.m.

Не растягивается изображение при увеличении окна

Qt, C++

Добрый день.
При увеличинии окна картинка, которая вставляется в лейбл не растягивается, хотя я вроде всё засунул в лейбл и выставил sizePolicy. Может кто знает, что я делаю не так, и как это починить?

  1. #include "mainwindow.h"
  2.  
  3. MainWindow::MainWindow(QWidget *parent)
  4. : QMainWindow(parent)
  5. {
  6. window = new QWidget(parent);
  7. label = new QLabel("Path");
  8. image = new QLabel("image");
  9. btn = new QPushButton("Open file");
  10. vlayout = new QVBoxLayout;
  11. hlayout = new QHBoxLayout;
  12. data = new dataCV;
  13.  
  14. hlayout->addWidget(label);
  15. hlayout->addWidget(btn);
  16. vlayout->addLayout(hlayout);
  17. vlayout->addWidget(image);
  18. window->setLayout(vlayout);
  19. setCentralWidget(window);
  20.  
  21. btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  22. image->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  23.  
  24. connect(btn, SIGNAL(clicked()), this, SLOT(OpenFile()));
  25. }
  26.  
  27. void MainWindow::OpenFile()
  28. {
  29. QImage img("D://picture1.png");
  30. image->setPixmap(QPixmap::fromImage(img));
  31. }
2

Do you like it? Share on social networks!

2
Evgenii Legotckoi
  • July 30, 2020, 8:23 p.m.

Добрый день.
У вас изменяется размер самого QLabel, но никак не его содержимого, то есть добавленного изображения.
При изменении размеров QLabel, нужно масштабировать и перестанавливать изображение заново.

Можно наследоваться от QLabel и переопределить его метод paint в котором устанавливать изображение. Метод paint вызывается автоматически при изменении размеров виджета.

    VD
    • July 30, 2020, 10:32 p.m.

    Спасибо огромное за ответ. Сам я к сожалению пока не в силах правильно переопределить т. к. только начал изучать Qt, но зато благодаря вам я быстро нашел решение своей проблемы.

      Comments

      Only authorized users can post comments.
      Please, Log in or Sign up
      • Last comments
      • IscanderChe
        April 12, 2025, 5:12 p.m.
        Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
      • AK
        April 1, 2025, 11:41 a.m.
        Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
      • Evgenii Legotckoi
        March 9, 2025, 9:02 p.m.
        К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
      • VP
        March 9, 2025, 4:14 p.m.
        Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
      • ИМ
        Nov. 22, 2024, 9:51 p.m.
        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…