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

Всплывающие уведомления в Python

06.08.2019, 15:12. Показов 10012. Ответов 6

Студворк — интернет-сервис помощи студентам
Есть ли в Python что-либо похожее на msgbox()?
Возможно использование PyQt5.

Кликните здесь для просмотра всего текста
Если такая тема уже была, дайте ссылку.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.08.2019, 15:12
Ответы с готовыми решениями:

Как через python сделать всплывающие сообщения?
Подскажите пожалуйста как через python сделать всплывающие сообщения? Чтобы они появлялись в определённом месте. Хочу их...

Фоновые уведомления в Python
Добрый день! Нужна помощь в создании фоновых уведомлений. У меня есть приложение, работающее с БД, по задумке, если пользователь не...

Всплывающие уведомления
Всем доброго времени суток. В рамках курсовой работы пищу органайзер на WinAPI. Одной из функций должно быть напоминание пользователю о...

6
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
06.08.2019, 15:13
Лучший ответ Сообщение было отмечено Xinda10 как решение

Решение

Вот такое есть https://pythonspot.com/pyqt5-messagebox/
1
 Аватар для Xinda10
0 / 0 / 0
Регистрация: 06.06.2019
Сообщений: 9
06.08.2019, 15:14  [ТС]
tooru, Программа будет ждать закрытия окна?
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
06.08.2019, 15:29
Цитата Сообщение от Xinda10 Посмотреть сообщение
Программа будет ждать закрытия окна?
Да. И вернет какую именно кнопку нажали, для последующей обработки.
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
06.08.2019, 15:31
del
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
06.08.2019, 15:35
Лучший ответ Сообщение было отмечено Xinda10 как решение

Решение

Пример использования.
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
# -*- coding: utf-8 -*- 
import sys
 
from PySide2.QtWidgets import QApplication, QMainWindow, QMessageBox
from PySide2.QtGui import QCloseEvent
 
 
class Main(QMainWindow):
 
    def __init__(self):
        QMainWindow.__init__(self)
 
 
        self.show()
 
    def closeEvent(self, event:QCloseEvent)->None:
        pressedButton = QMessageBox.question(self,
                        "Выход", "Вы уверены что хотите закрыть программу?",
                        QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if pressedButton == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
        return None
 
 
if __name__ == '__main__':
    App = QApplication(sys.argv)
    main = Main()
    sys.exit(App.exec_())
1
290 / 205 / 68
Регистрация: 18.09.2019
Сообщений: 407
Записей в блоге: 58
18.09.2019, 11:24
Здравствуйте!

Решил таки свои 5 копеек вставить и демонстрашку вывалить, вспомнив как я намучался с зомби-процессами, когда игрался с этим лукавым примером https://pythonspot.com/pyqt5-messagebox/

Задача такая - во время запуска проверить некие условия и оповестить пользователя с помощью QMessageBox о возникновении ошибок. Некоторые из ошибок - критические, даже главное окно не поднять, другие - требуют реакции пользователя. В демонстрашке критической ошибкой считается указание параметра в командной строке, а требующей реакции - запуск на не тестированной платформе.

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/python3
# -*- coding: utf-8 -*-
 
import sys
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import QAction, QApplication, QDesktopWidget
from PyQt5.QtWidgets import QMainWindow, QMessageBox, QStyleFactory
 
class probeMainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(probeMainWindow, self).__init__(parent)
        self.initUI()
 
    def initUI(self):
        screen = QDesktopWidget().availableGeometry()
        self.setGeometry(
            int(screen.width()/4), int(screen.height()/4),
            int(screen.width()/2), int(screen.height()/2))
 
        self.setWindowTitle("The Alarm Probe v0.001")
        self.statusBar()
 
        exitAction = QAction(
            "Завершить работу", self, shortcut="Ctrl+Q",
            statusTip="Завершение работы",
            triggered=self.close, enabled=True)
        taskMenu = self.menuBar().addMenu("Задачи")
        taskMenu.addAction(exitAction)
 
        self.show()
 
        # инициализация главного окна пока ещё не завершена,
        # поэтому проверку, которая может его закрыть по self.close(),
        # запускает таймер из другого потока, чтобы можно было
        # вернуть управление обработчику событий для корректного
        # завершения инициализации окна до старта проверки
        self.chkStarter = QTimer(self)
        self.chkStarter.setSingleShot(True)
        self.chkStarter.timeout.connect(self.chkProbe)
        self.chkStarter.start(100)
 
    def chkProbe(self):
        self.chkStarter.timeout.disconnect(self.chkProbe)
 
        reply = QMessageBox.warning(
            self, "П Р Е Д У П Р Е Ж Д Е Н И Е !!!",
            "Работоспособность приложения <b>Проверка оповещений</b>"\
            +" на платформе "+sys.platform.upper()\
            +" не гарантируется!!!<br><br>"\
            +"Всё равно продолжить работу?",
            buttons=QMessageBox.Yes|QMessageBox.Close)
        if reply != QMessageBox.Yes:
            self.close()
 
 
if __name__ == "__main__":
    app = QApplication(sys.argv)
 
    if len(sys.argv) > 1:
        mbox = QMessageBox()
        mbox.setWindowTitle("О Ш И Б К А !!!")
        mbox.setIcon(QMessageBox.Critical)
        mbox.setText(
            "Запуск приложения <b>Проверка оповещений</b> невозможен:")
        mbox.setInformativeText(
            "Лишний параметр в командной строке.<br>"\
            +"Попробуйте запустить приложение без параметров.")
        mbox.addButton(QMessageBox.Close)
        mbox.show()
        sys.exit(app.exec_())
 
    mwin = probeMainWindow()
    sys.exit(app.exec_())
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.09.2019, 11:24
Помогаю со студенческими работами здесь

Всплывающие уведомления
Всем привет. В общем кто то может сталкивался с Notification. Так вот скажите как же сделать эти уведомления хотя бы примеры. ...

Всплывающие уведомления
Столкнулся с такой проблемой package ru.startandroid.develop.p0991servicenotification; import java.util.concurrent.TimeUnit; ...

Всплывающие окна, уведомления
Добрый день! Подскажите пожалуйста! На данный момент изучаю Asp.Net core шаблон MVC. Что необходимо изучить, чтобы у меня были всплывающие...

Всплывающие уведомления Windows 10
Возможна ли разработка приложений, использующих всплывающие уведомления Windows 10, на С++? Если да, то какие файлы необходимо докачать для...

События и всплывающие уведомления NotifyIcon
Добрый день! В фоновом потоке генерятся события на которые подписан основной поток UI. Если события генерятся с очень коротким...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru