@TemaKam

Почему не привязываются функции на кнопки на создаваемом виджете из моего класса?

при нажатии кнопки вызываю функцию класса (из другого модуля), которая возвращает форму (с кнопками и т.д.)
все действия, которые прописаны в __init__ выполняются, а когда попытался в этом классе привязать функцию к кнопке - то на создаваемой форме эта функция уже не работает
почему так?

если кратко код, то примерно так:
модуль 1.py
from 2.py import Task
...
self.tasks.addTab(Task(параметры __init__).new_task(), self.task_name.toPlainText())

модуль 2.py:
class Task:
    def __init__(self, параметры):
        super().__init__()
        self.tab_2 = QtWidgets.QTabWidget()
        self.tab_2.setObjectName("tab_2")
        # кнопка для примера
        self.start_task = QtWidgets.QPushButton(self.tab_2)
        self.start_task.setGeometry(QtCore.QRect(300, 510, 171, 23))
        font = QtGui.QFont()
        font.setPointSize(9)
        self.start_task.setFont(font)
        self.start_task.setObjectName("start_task")

        self.start_task.clicked.connect(self.test)

    def new_task(self):
        return self.tab_2

    def test(self):
        print('111')

вот и получается, что форма с кнопкой создаётся (ну и другие объекты там еще), а действие по нажатию кнопки не происходит
  • Вопрос задан
  • 250 просмотров
Решения вопроса 1
@bbkmzzzz
class Task:
    def __init__(self, параметры):
        super().__init__()

От чего наследован класс? Как запускается приложение?
clicked сигнал испускается при нажатии на кнопку. Сигналы могут испускать и принимать только объекты-наследники QObject и только в основном цикле событий. Task таковым не является.

Либо дополняем код, либо идем читать про Qt.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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