listener.finished.connect(listener_finished) # Используем QThread так рекомендуется, но можно и обычный # th_listen = threading.Thread(target=listener.poll) # th_listen.daemon = True # th_listen.start() th = QThread() listener.moveToThread(th) # # ---------- Важная часть - связывание сигналов и слотов ---------- # При запуске потока будет вызван метод search_text th.started.connect(listener.poll) th.start() contact_list = client.get_contacts() def load_contacts(contacts): """загрузка контактов в список""" # чистим список window.listWidgetContacts.clear() # добавляем for contact in contacts: window.listWidgetContacts.addItem(contact) # грузим контакты в список сразу при запуске приложения load_contacts(contact_list)
username = message_str.split()[1] except IndexError: print('Не указано имя пользователя') else: client.add_contact(username) elif message_str.startswith('del'): # удаляем контакт # получаем имя пользователя try: username = message_str.split()[1] except IndexError: print('Не указано имя пользователя') else: client.del_contact(username) elif message_str == 'list': contacts = client.get_contacts() elif message_str.startswith('message'): params = message_str.split() try: to = params[1] text = params[2] except IndexError: print('Не задан отправитель или текст сообщения') else: client.send_message(to, text) elif message_str == 'help': print('add <имя пользователя> - добавить контакт') print('del <имя пользователя> - удалить контакт') print('list - список контактов') print('exit - выход') elif message_str == 'exit':