KL
Konstantin LazarevJan. 26, 2017, 8:17 a.m.
Проблемы смены картинки
QNetworkAccessManager, Image, QLabel
Добрый день. В приложении использую класс QNetworkAccessManager для загрузки изображений с сайта. Загружается порядком 10 изображений. Загружаются они в QLabel. Отрабатывает все отлично. После того, как сворачиваю приложение или нажимаю кнопку alt., все изображения меняются на одну из картинок. В проекте не прописана работа с клавиатурой вообще. Что это может быть?
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
AD
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
m
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
m
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Last comments
Evgenii LegotckoiOct. 31, 2024, 2:37 p.m.
Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовOct. 5, 2024, 7:51 a.m.
QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Now discuss on the forum
Evgenii LegotckoiJune 24, 2024, 3:11 p.m.
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Nov. 15, 2024, 6:04 a.m.
NSProjectJune 4, 2022, 3:49 a.m.
IscanderCheOct. 31, 2024, 3:43 p.m.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
Дополню, смена картинки наблюдается только раз, при повторном нажатии на alt ничего не происходит
Класс работающий с сетью
Заголовочный файл
Интерфейс
Интерфейс
Не совсем пока ясно, почему может происходить обновление. Но выставляется одна картинка потому, что Network.getImage() возвращает последнюю картинку, которую Вы скачали. Я так понимаю, как раз последняя картинка и выставляется везде при этом случайном обновлении.
Поэтому рекомендую вместо хранения информации с последней картинкой в QPixmap , хранить информацию обо всех картинках, которые вы запросили за один запрос. Для этого можно использовать QVector
Ну и модифицировать метод getImage() , что-нибудь вроде такого:
Тогда это позволит убрать для начала симптомы проблемы.
А вот причина проблемы в неконтролируемом срабатывании слота WriteYandexTic . Не очень ясно, почему он так срабатывает. Попробуйте пройтись дебагером, код небольшой, так что вполне реально отыскать проблему.
Спасибо вам, попробую реализовать через QVector. Но очень странно себя ведет приложение, раньше не сталкивался с таким. А по поводу использования двух менеджеров, допустимо?
Два менеджера на данный момент пойдёт. У вас в коде другая проблема. Вот этот switch case с лейблами - это очень слабый архитектурный ход. Лучше, чтобы QLabel добавлялись и удалялись динамически.
Также стоит переписать метод Set_Tic_Image() . Так будет правильнее.
Если сделать динамические лейблы и переписать Set_Tic_Image , то можно будет избавиться от switch case .
И ещё проблема с кодстайлом: GoogleQuery::Set_Tic_Image() . Вы уже определитесь с названием метода или нижние подчёркивания или Camel Style. То есть или так GoogleQuery::setTicImage() , или так GoogleQuery::set_tic_image() .
Спасибо, буду исправлять.
Через вектора все получилось, спасибо за помощь и совет!!!
Я лейблы проставлял через дизайнер. Вы советуете прописать их через код используя setGeometry()?
Не совсем. Посмотрите вот этот урок по динамическому созданию виджетов , думаю идея тогда будет понятна.