Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 15
PyQt5

Обновления надписи во время работы программы

10.06.2022, 18:23. Показов 803. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: нужно скачать файлы с почты на устройство. Я хочу выводить окошко, которое будет во время работы кода, показывать начало скачивания, список файлов, окончание скачивания
Сейчас получается так, что виджет создаётся, выполняется код и выводится последняя возможная запись. Возможно нужно использовать не QWidget, но я не уверен

Python
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
class download_page(QWidget):
    def __init__(self, parent=None, ):
        super().__init__(parent, Qt.Window)
        self.mail = 'xx@gmail.com'
        self.password = "yy"
        self.download_folder_linux = str(os.getenv('HOME')) + '/request/{}'
        self.download_folder_windows = 'C:/request/{}'
        self.dialog_layout = QVBoxLayout()
        self.progress_text = QLabel('Выполняется скачивание файлов из ' + self.mail)
        self.progress_download = QProgressBar()
 
        self.dialog_layout.addWidget(self.progress_text)
        self.dialog_layout.addWidget(self.progress_download)
        self.setLayout(self.dialog_layout)
        self.show()
        self.download()
    def download(self):
        self.progress_text.setText(self.check_os())
        # get all attachments from INBOX and save them to files
        with MailBox('imap.gmail.com').login(self.mail, self.password, 'INBOX') as mailbox:
            for msg in mailbox.fetch():
                for att in msg.attachments:
                    # print(att.filename, att.content_type)
                    print_info = str(att.filename) + str(att.content_type)
                    print(print_info)
                    self.progress_text.setText(print_info)
                    with open(self.files_folder.format(att.filename), 'wb') as f:
                        f.write(att.payload)
        self.progress_text.setText('Файлы успешно скачаны!')
Добавлено через 22 минуты
гугл подсказывает использовать таймер:
Python
1
QTimer.singleShot(10, lambda: self.progress_text.setText(print_info))
но как-то не помогло
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.06.2022, 18:23
Ответы с готовыми решениями:

Как вывести время работы программы ПОСЛЕ завершения работы progressBar?
У меня почему-то сначала выводится время в MessageBox, а затем уже завершает свою работу progressBar, а мне нужно наоборот. ...

Проблемы Работы Программы После Обновления
Кто может помочь??? Я не програмист но обновляю программу сама и вот после очередного обновления в справочнике номенклатуры у меня пропала...

Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы программы
1. Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы...

1
 Аватар для kapbepucm
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
13.06.2022, 13:22
Лучший ответ Сообщение было отмечено Nmg11 как решение

Решение

попробуйте вставить после строки 26:
Python
1
2
self.progress_text.setText(print_info)
QCoreApplication.processEvents()
Ну а вообще, стОит почти всё тело download_page.download вынести в другой поток, от туда сигналить о ходе процесса скачки, а в главном потоке эти сигналы ловить и визуализировать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2022, 13:22
Помогаю со студенческими работами здесь

Изменение иконки ярлыка программы, во время работы самой программы
Программа запускается с ярлыка, который использует определенную иконку. Сама программа перезаписывает эту иконку. С самим ярлыком всё...

Время работы программы
Необходимо сравнить время сортировки прямым включением и "Шеллом" на массивах большого объёма. Составил программку, но почему-то время...

Время работы программы
Имеется задача на CodeForces. С идеей ее решения проблем не было. 1)Вот рабочая версия, использующая лишь "Сишные" методы : ...

Время работы программы
Hi, there. Пишу программку, которая сравнивает скорость алгоритмов сортировки по времени, пользуюсь функцией System.nanoTime(), однако,...

Время работы программы
Запись в файл времени работы модно сделать так, нго это больно длинно: procedure TForm1.FormDestroy(Sender: TObject); var F :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru