@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')

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

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

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

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

Похожие вопросы