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

PyQt5 не показывает ошибки

12.05.2017, 03:58. Показов 8718. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PyQt5 при возникновении ошибки просто завершает работу программы, а хотелось бы посмотреть что ему не понравилось...
Как включить отображение ошибок?
(а то я скоро экстрасенсом стану)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2017, 03:58
Ответы с готовыми решениями:

PyQt5 + matplotlib исправление ошибки, animation
Здравствуйте. Нужна помощь с установлением анимированного графика matplotlib в gui. Есть гуи, которая состоит из двух label и двух...

Все методы и атрибуты PyQt5.QtGui PyQt5.Qtwdigets и QtCore
На официальной документации модуля я не нашёл все методы и атрибуты PyQt5. может дадите источник со всем этим добром??? Буду вам очень...

Не показывает картинку в Pyqt5
Здравствуйте, такая проблема: пишу код, работаю с Pyqt5, не высвечивается картинка. Подумал ошибка в коде, но у друга все работает, подумал...

10
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
12.05.2017, 05:19
Глобальный перехватчик делаешь в месте запуска программы и в обработчике показываешь ошибку возникшую, а потом закрываешь прогу.
0
0 / 0 / 1
Регистрация: 03.02.2015
Сообщений: 81
13.05.2017, 02:17  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
Глобальный перехватчик делаешь в месте запуска программы
Если так, то не работает(
Python
1
2
3
4
5
6
7
8
9
10
11
if __name__ == "__main__":
    import sys
    try:
        app = QtWidgets.QApplication(sys.argv)
        MainWindow = QtWidgets.QMainWindow()
        ui = Ui_MainWindow()
        ui.setupUi(MainWindow)
        MainWindow.show()
        sys.exit(app.exec_())
    except Exception as e:
        raise e
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.05.2017, 10:12
kak_ivan, так ты тут и не делаешь отображения ошибки. Ты ее поймал и опять кинул дальше.
0
0 / 0 / 1
Регистрация: 03.02.2015
Сообщений: 81
13.05.2017, 21:58  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
так ты тут и не делаешь отображения ошибки.
http://pep8.ru/doc/tutorial-2.6/9.html

Оператор raise позволяет программисту принудительно породить исключение. Например:
Python
1
2
3
4
>>> raise NameError, 'ПриветТам'
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: ПриветТам
Я принудительно порождаю исключение которое отловил try:except:
А так как это не работает, значит исключение не возникает...

И скорее всего просто где-то нужно передать какой-то параметр в модуль, чтобы он возвращал исключения
(Для это я и написал сюда, чтобы узнать кому и что передать)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
14.05.2017, 18:21
kak_ivan, raise возбуждает ошибку, с этим ни кто не спорит, но то, что ты делаешь называется дичь. Ты отлавливаешь ошибку и потом опять ее кидаешь дальше (причем кидаешь не правильно, нужно писать просто raise если хочешь кинуть ошибку дальше). То есть ты написал бесполезный обработчик ошибки, который НИКАК​ не влияет на ход исполнения программы.

Если хочешь увидеть​ ошибку в гуи, то создай message box и туда пиши ошибку.
0
0 / 0 / 1
Регистрация: 03.02.2015
Сообщений: 81
15.05.2017, 03:41  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
Если хочешь увидеть​ ошибку в гуи, то создай message box и туда пиши ошибку.
Ну хоть что-то полезное сказал, спасибо)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
15.05.2017, 05:56
kak_ivan, я это сказал тебе ещё в самом начале.

Если было непонятно как вывести ошибку, надо было это переспросить и все.
0
0 / 0 / 1
Регистрация: 03.02.2015
Сообщений: 81
15.05.2017, 07:35  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
Если было непонятно как вывести ошибку, надо было это переспросить

Переспрашиваю
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
15.05.2017, 20:18



красивый способ
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
import sys
 
from PyQt5 import QtWidgets
 
 
class MainWindow(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setLayout(QtWidgets.QHBoxLayout())
 
        but = QtWidgets.QPushButton('Нажми меня')
        self.layout().addWidget(but)
        but.clicked.connect(self.error)
 
    def error(self):
        raise Exception('Неожиданная ошибкочка')
 
 
def my_excepthook(type, value, tback):
    QtWidgets.QMessageBox.critical(
        window, "CRITICAL ERROR", str(value),
        QtWidgets.QMessageBox.Cancel
    )
 
    sys.__excepthook__(type, value, tback)
 
 
sys.excepthook = my_excepthook
 
app = QtWidgets.QApplication([])
window = MainWindow()
window.show()
app.exec_()
2
0 / 0 / 1
Регистрация: 03.02.2015
Сообщений: 81
16.05.2017, 06:56  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
def error(self):
* * * * raise Exception('Неожиданная ошибкочка')
Очень благодарен)
А как кинуть возникшую ошибку?

И как ее перехватить?
Например, на этом коде:
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
#!/usr/bin/python3
# -*- coding: utf-8 -*-
 
import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication
 
 
class Example(QMainWindow):
 
    def __init__(self):
        super().__init__()
 
        self.initUI()
 
 
    def initUI(self):
 
        btn1 = QPushButton("Button 1", self)
        btn1.move(30, 50)
 
        btn2 = QPushButton("Button 2", self)
        btn2.move(150, 50)
 
        btn1.clicked.connect(self.buttonClicked)
        btn2.clicked.connect(self.buttonClicked)
 
        self.statusBar()
 
        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('Event sender')
        self.show()
 
 
    def buttonClicked(self):
 
        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was pressed')
 
 
if __name__ == '__main__':
 
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2017, 06:56
Помогаю со студенческими работами здесь

Показывает разные ошибки
Использую MYSQL, а библиотека: pymysql 1 ошибка: Packet sequence number wrong - got 6 expected 1 2 ошибка: command out of sync ...

Unable to import 'PyQt5' / No module named 'PyQt5' /
Здравствуйте. Имеется Ubuntu 18.04. Хочу использовать pyside2. Установил PyQt5. :~$ pip install PyQt5 Defaulting to user...

Python+PyQt5 не показывает QFileDialog
Здравствуйте. Собственно начал грызть PyQt5 и возникла одна проблема. Есть 3 файла: main.py - основная логика программы ...

Отладка по IE 5.5 не показывает многие ошибки
Заметил такую неприятную вещь, если стоит IE5.5 то многие ошибки не показываются подробно, а просто пишется HTTP 500 - Внутренняя...

Яндекс не индексит сайт и показывает ошибки
Вобщем как исправить эту ошибку кодировки сайт на 180 страниц в индекс успела попасть только морда 1 раз. дижок сателлит-х


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru