Задать вопрос
@arama92

Как вызвать другой класс?

Есть 2 класса. В каждом из них есть форма. Надо по команде открыть окно другого класса. Как это сделать ?
import os
import sys
from PyQt5.QtWidgets import *
from PyQt5.uic import loadUi
from  PyQt5.QtGui import *
from pytube import YouTube
import threading

class Menu(QMainWindow):
    def __init__(self):
        super(Menu, self).__init__()
        loadUi("un1.ui", self)
        self.pb1.clicked.connect(self.next)

    def next(self):
        # Не знаю как написать тут вызов
        # Next().show() не работает
        


class Next(QMainWindow):
    def __init__(self):
        super(Next, self).__init__()
        loadUi("un2.ui", self)
        self.pb2.clicked.connect(self.pp)

    def pp(self):
        print(1)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = Menu()
    mainWindow.show()
    sys.exit(app.exec_())
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Чтобы вызвать метод другого класса, вам нужен экземпляр этого класса. Решение:
def __init__(self):
        super(Menu, self).__init__()
        loadUi("un1.ui", self)
        self.pb1.clicked.connect(self.next)
        nextWindow = Next()

    def next(self):
        nextWindow.show()

Не уверен, правда, что стоит так делать, но в вашем случае должно помочь.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
25 янв. 2025, в 01:32
1000 руб./за проект
24 янв. 2025, в 23:36
800 руб./за проект
24 янв. 2025, в 22:10
1000 руб./за проект