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

Неопределенный индикатор выполнения в виде анимации в центре главного окна

20.06.2018, 12:38. Показов 2001. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как в PyQt5 реализовать неопределенный индикатор выполнения в виде анимации в центре главного окна? Встречается довольно часто в повседневной жизни, но как это сделать я так и не нашел. Например такой, как в Kodi тот что по центру:
Кликните здесь для просмотра всего текста
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2018, 12:38
Ответы с готовыми решениями:

QGraphicsItemAnimation - нет ли утечек памяти при закрытие главного окна во время анимации?
Привет, ну вот создаю я анимацию элемента QGraphicsScene... (перенёс в одну кучу для наглядности) QGraphicsScene* m_pGS; ...

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

Как мне сослаться на вторичные окна (формы) из главного окна
Мне скинули код.....я пытаюсь коды этих отдельных форм просмотреть в конструкторе.......то есть создав новый проект.......но наткнувшись на...

4
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
20.06.2018, 15:19
Проще всего, в гугл gif loader и выбрать подходящую gif анимацию и вывести

Кликните здесь для просмотра всего текста
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
30
31
32
33
34
35
from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout, QLabel, QSizePolicy
from PyQt5.QtGui import QMovie
from PyQt5.QtCore import QByteArray, Qt
import sys
 
class ImagePlayer(QWidget):
    def __init__(self, filename, title, parent=None):
        QWidget.__init__(self, parent)
 
        self.movie = QMovie(filename, QByteArray(), self)
 
        size = self.movie.scaledSize()
        self.setGeometry(200, 200, size.width(), size.height())
        self.setWindowTitle(title)
 
        self.movie_screen = QLabel()
        self.movie_screen.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.movie_screen.setAlignment(Qt.AlignCenter)
 
        main_layout = QVBoxLayout()
        main_layout.addWidget(self.movie_screen)
 
        self.setLayout(main_layout)
 
        self.movie.setCacheMode(QMovie.CacheAll)
        self.movie.setSpeed(100)
        self.movie_screen.setMovie(self.movie)
        self.movie.start()
 
if __name__ == "__main__":
    gif = "loading.gif"
    app = QApplication(sys.argv)
    player = ImagePlayer(gif, "was")
    player.show()
    sys.exit(app.exec_())


В pyqt есть класс QSplashScreen, так что гифку можно вывести на экране загрузки
1
1 / 1 / 0
Регистрация: 23.05.2018
Сообщений: 18
20.06.2018, 17:28  [ТС]
ТабуретY,
Спасибо. Еще вот нарыл и на С++ здесь и здесь. О QMovie я читал немного, но так и не понял, как сделать, что бы выводило одну анимашку.

Добавлено через 1 час 23 минуты
Из-за невнимательности не заметил, что по одной из ссылок для С++ внизу страницы есть ссылка на форк на python. Еще не смотре, но по моему это то, что мне нужно! Но если будут еще варианты буду рад помощи!
1
1 / 1 / 0
Регистрация: 23.05.2018
Сообщений: 18
21.06.2018, 19:49  [ТС]
Остановился я на QtWaitingSpinner и пока доходит не сильно быстро, но стал хоть что-то понимать. У меня такой вопрос. Вот этот spinner нужно как-то в другом потоке запускать, что бы он сразу запускался и не влиял на ход вычислений? Моя первая прога в общем не замысловатая. Использую ParameterTree из pyqtgraph для ввода данных и в результате где-то там происходят расчеты. Так вот в это самое время если расчеты продолжительные надо, что бы выскакивал этот spinner (в QML кстати называется BusyIndicator). Я в этом если честно мало волоку, но вот здесь есть вариант когда процесс, который должен мониторить spinner, заворачивают в QRunnable. И вопрос, а можно сам spinner засунуть в QRunnable и как?
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
21.06.2018, 21:03
Цитата Сообщение от amat Посмотреть сообщение
И вопрос, а можно сам spinner засунуть в QRunnable и как?
Нельзя, будет ошибка, gui должен запускаться из главного потока, из runnable можно дергать слоты или посылать сигналы
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.06.2018, 21:03
Помогаю со студенческими работами здесь

Где и как правильно перерисовывать дочерние окна при изменении главного окна ?
Где и как правильно перерисовывать дочерние окна при изменении главного окна ? Про WM_SIZE знаю. Про остальное только догадываюсь.

Как узнать margin-left любого элемента от главного окна окна браузера?
причем не важно какую вложенность имеет элемент сам элемент, т.е. в скольких контейнерах он бы не находился, нужно найти его marginLeft от...

Дочерние окна сворачивать в пределах главного окна (Delphi 7)
Здравствуйте, подскажите как сделать чтоб дочернее окно при свертывании не уходило на панель задач а оставалось свернутым в приделах...

Запуск второго окна перед стартом главного окна
необходимо запустить второе окно до старта основного окна и вызвать основное окно после завершения второго окна

При перерисовке главного окна мигают дочерние окна
При перерисовке главного окна мигают дочерние окна. Для отрисовки главного окна используется двойная буферизация, как и в дочерних окнах....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru