@LowLevel

Добавил виджет, но он не отобразился при запуске программы (PyQt5). Что я сделал не так?

Я создал класс который вызывает дополнительное окно. При добавлении в него виджетов и последующей компиляции они не отображаются. Не могу понять причины.
Изучать PyQt начал месяц назад.
Вот такое пустое окно я вижу
5cbe005968f80030383188.jpeg
import sys
from MainWindow import *
from PyQt5 import QtCore, QtGui, QtWidgets

class Cost_Actives(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super().__init__(parent, QtCore.Qt.Window)
        self.build()
    def build(self):
        self.qle = QtWidgets.QTextEdit()
        
             
class MyWin(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.ui= Ui_MainWindow()
        self.ui.setupUi(self)
    
        self.ui.pushButton.clicked.connect(self.CostA)

    def CostA(self):
        self.secondWin = Cost_Actives(self)
        self.secondWin.show()
    
if __name__=="__main__":
    app = QtWidgets.QApplication(sys.argv)
    myapp = MyWin()
    myapp.show()
    sys.exit(app.exec_())


Благодарю за внимание!
  • Вопрос задан
  • 815 просмотров
Решения вопроса 1
@bbkmzzzz
А вы указали, что и куда рисовать?
def build(self):
        # self.qle = QtWidgets.QTextEdit()  # Создание атрибута класса и запись туда QTextEdit (и все)
        self.qle = QtWidgets.QTextEdit(self)  # передайте родителя!

можете сделать так же как и с главным окном. Создаете ui -> py
class Cost_Actives(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super().__init__(parent, QtCore.Qt.Window)
        self.ui = Ui_Form()
        self.ui.setupUi(self)

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

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

Войти через центр авторизации
Похожие вопросы