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

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

12.05.2017, 03:58. Показов 8666. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru