Ошибка типа: info() отсутствует 1 требуемый позиционный аргумент: «состояние»

#python

Вопрос:

 def info(state):
    if state == QtCore.Qt.Checked:
       while True:
           time.sleep(1)
           print('pos')
    else:
       pass
       

def gpas():
    s = Thread(target = info).start()
    

ui.checkBox_2.stateChanged.connect(gpas)
 

выход:

 TypeError: info() missing 1 required positional argument: 'state'
 

Комментарии:

1. Функция info определена так, чтобы принимать аргумент, но то, как вы ее вызываете, вы ей его не даете

Ответ №1:

Вы несете ответственность за получение состояния кнопки и передачу его потоку. Поток не имеет никакого отношения к Qt.

 def info(state):
    if state:
       while True:
           time.sleep(1)
           print('pos')
    else:
       pass
       
def gpas():
    s = Thread(target = info, args=(ui.checkBox_2.isChecked(),)).start()
    
ui.checkBox_2.stateChanged.connect(gpas)