Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
 Аватар для Ennjin
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
PyQt5

Смена окон в PyQt5

25.09.2017, 20:36. Показов 6161. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 3 класса

MainWindow - основное окно.
LoginWidget - виджет авторизации
HomeWidget - домашний виджет (после авторизации)

Основное окно при запуске инициализирует LoginWidget. После авторизации нужно через виджет авторизации (или как нибудь по другому) в MainWindow изменить LoginWidget на HomeWidget. Единственное решение, которое я вижу, это наследование главного окна в виджете авторизации. Но как это сделать если я уже в LoginWIdget наследую класс QWidget?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.09.2017, 20:36
Ответы с готовыми решениями:

Как обновлять содержимое окон в PyQt5?
Доброго всем времени суток. Я пишу небольшую программу, которая работает с базой данных, как Вы поняли, в ней реализованы несколько...

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

PyQT5 - кодировка диалоговых окон
Уважаемые форумчане, прошу помощи. Ниже код, где я через QInputDialog получаю строку и пишу ее в файл. import sys from...

7
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
25.09.2017, 20:51
Во 1 в python есть множественное наследование, во 2 чтобы что-то менять в другом классе не надо от него наследоваться, нужно просто иметь ссылку на экземпляр класса и все.
0
 Аватар для Ennjin
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
25.09.2017, 20:53  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
Во 1 в python есть множественное наследование
Это плохая практика
Цитата Сообщение от alex925 Посмотреть сообщение
нужно просто иметь ссылку на экземпляр класса
Не мог бы показать пример?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
25.09.2017, 20:59
Цитата Сообщение от Ennjin Посмотреть сообщение
Это плохая практика
Ничего подобного.

Цитата Сообщение от Ennjin Посмотреть сообщение
Не мог бы показать пример?
Это как 2*2=4

Python
1
2
3
4
5
6
7
class A:
    def __init__(self):
        a = 1
 
inst = A()
inst.a = 2
print(inst.a)
Спрашиваешь про ООП и не знаешь это, странно как-то....
0
 Аватар для Ennjin
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
25.09.2017, 21:06  [ТС]
alex925,
В общем разобрался
Python
1
2
3
4
# Class MainWindow
...
login_widget = LoginWidget(self)
...
Python
1
2
3
4
5
6
# class LoginWidget
...
def __init__(self, parent=None):
    super().__init__()
    self.parent = parent
...
Изначально я пробовал так

Python
1
2
3
4
...
def __init__(self, parent=None):
    super().__init__(parent)
...
Но у меня не передавалась ссылка. Почему?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
25.09.2017, 21:11
Цитата Сообщение от Ennjin Посмотреть сообщение
Но у меня не передавалась ссылка. Почему?
Если не передавалась, значит не передавал. Вообще вопрос странный и непонятно, о чем ты.

Кстати рекомендовал бы обратить внимание на паттерн внедрение зависимостей, когда приложение чуть чуть вырастет обалдеешь передавать по цепочке ссылки на объекты.
1
 Аватар для Ennjin
103 / 81 / 54
Регистрация: 25.11.2016
Сообщений: 278
26.09.2017, 09:03  [ТС]
alex925,
И еще.
Как лучше собрать приложение в exe?
.py -> pyinstaller -> .exe
.py > cython -> .so -> pyinstaller -> .exe
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.09.2017, 13:02
Ennjin, лучше не собирать ни как, потому что это бред и костыль. Правильный подход это создание установщика, который поставит python, все нужные либы + исходники.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2017, 13:02
Помогаю со студенческими работами здесь

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

Смена окон
есть 3 класса public class MainWindow extends JFrame { JButton first, second; cl cl = new cl(); public...

Смена окон JavaFX
Обьясните, пожалуйста, правильно ли я делаю? Создаю класс для управления формами приложения, ему передаю объект Stage public...

Смена окон местами по нажатию клавиши
Здравствуйте, уважаемый форумчане! Есть программа, выполняющая различные функции в четырех окнах, помогите, пожалуйста добавить в неё...

Смена цветов текстовых окон по кнопке
Такое дело, только начинаю изучать Basic, но времени нет, надо зачет сдавать.. Буду очень признателен, если поможете..:) Задача: После...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru