Форум программистов, компьютерный форум, киберфорум
Python: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
14 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422

Почему модуль не узнает свои же классы и методы

21.06.2020, 10:51. Показов 1951. Ответов 7

Студворк — интернет-сервис помощи студентам
Всем привет, вопрос не столько по модулю PyQt5. Допустим, я хочу использовать метод QApplication без всяких from:
Python
1
2
3
4
5
6
import sys
import PyQt5 as qt
#from PyQt5.QtWidgets import (QApplication, QWidget)
#from PyQt5.QtGui import QIcon
 
app = qt.QtWidgets.QApplication(sys.argv)
И выдает ошибку, что у PyQt5 нет атрибута QtWidgets:
Code
1
2
3
4
Traceback (most recent call last):
  File "pyqt5file.py", line 6, in <module>
    app = qt.QtWidgets.QApplication(sys.argv)
AttributeError: module 'PyQt5' has no attribute 'QtWidgets'
Почему так происходит, и что делать, если хочу вызвать метод QApplication, допустим, один раз и не хочу доставать их из from?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.06.2020, 10:51
Ответы с готовыми решениями:

Зачем придумывать свои классы и методы?)
Уважаемые господа задам возможно странный вопрос т.к. не знаю ответа пака! :) Можно придумать очень серьезный класс на C# типа...

Почему получается использовать методы одного класса в другом, хотя классы не связаны наследованием
Добрый день Когда читала про наследование классов уяснила для себя - оно нужно в том числе, чтобы классы могли...

Почему не узнает Uri?
{$reference System.Windows.Forms.dll} {$reference System.Drawing.dll} uses System.Windows.Forms, System.Threading; var ...

7
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.06.2020, 10:57
Да используй:

Python
1
2
3
from PyQt5.QtWidgets import QApplication
 
QApplication(...)
0
14 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
21.06.2020, 11:07  [ТС]
А почему если просто написать:
Python
1
2
import PyQt5 as qt
app = qt.QtWidgets.QApplication(sys.argv)
То выдает ошибку? Вроде не нарушается ничего...
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.06.2020, 11:11
from PyQt5
и
from PyQt5.QtWidgets

это два разных пакета, скорее всего.
1
14 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
21.06.2020, 11:17  [ТС]
Видимо, вот так сделал, все заработало:
Python
1
2
3
4
import PyQt5.QtWidgets as wg
 
app = wg.QApplication(sys.argv)
w = wg.QWidget()
Получается один модуль, может хранить в себе другой модуль?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.06.2020, 11:19
Да. Примерно так:

Code
1
2
3
4
5
6
PyQt5
|- __init__.py
|- ...
|- QtWidgets
  |- __init__.py
  |- ...
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
21.06.2020, 11:56
Цитата Сообщение от SalavatGood Посмотреть сообщение
Получается один модуль, может хранить в себе другой модуль?
Это называется пакетом.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
21.06.2020, 16:16
Цитата Сообщение от SalavatGood Посмотреть сообщение
А почему если просто написать:
Строка from PyQt5.QtWidgets или import PyQt5.QtWidgets на самом деле делает сразу несколько импортов: import PyQt5 и import PyQt5.QtWidgets и только потом уже import QApplication в текущее пространство имен. Субмодули сами по себе не импортируются, если, конечно, это явно не прописано в __init__.py главного модуля.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.06.2020, 16:16
Помогаю со студенческими работами здесь

Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы
Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы Abiturient:...

Классы, методы классов, методы экземпляров
Добрый день. Никак не могу разобраться в методах классов и объектов. 1) Зачем нам нужны методы класса, если мы постоянно создаем...

Свои визуальные классы объекты
В средах от болэнда есть классы визуальных объектов (TButton, TEdit, TStringGrid и так далее). В этих классах (в сёвом смыле)...

ActiveX неотображаются свои собстенные методы
Здорова! Создал ActiveX, добавил к нему свои методы, добавил его к клиенту, создал класс интерфейса и в нем нету методов моих которые я...

Куда размещать свои модули и классы?
Собсвенно сабж. Ну для моделей, хелперов и контроллеров есть папки. А если я хачу сделать класс AuthManager Который может...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
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