VD
30 июля 2020 г. 20:16

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

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

Вам это нравится? Поделитесь в социальных сетях!

2
Evgenii Legotckoi
  • 30 июля 2020 г. 20:23

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

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

    VD
    • 30 июля 2020 г. 22:32

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

      Комментарии

      Только авторизованные пользователи могут публиковать комментарии.
      Пожалуйста, авторизуйтесь или зарегистрируйтесь
      • Последние комментарии
      • IscanderChe
        12 апреля 2025 г. 17:12
        Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
      • AK
        1 апреля 2025 г. 11:41
        Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
      • Evgenii Legotckoi
        9 марта 2025 г. 21:02
        К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
      • VP
        9 марта 2025 г. 16:14
        Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
      • ИМ
        22 ноября 2024 г. 21:51
        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…