Как добавить сокет в список виджетов - PullRequest
0 голосов
/ 23 мая 2018

Мне нужна помощь с добавлением объекта сокета python в PyQt5 listWidget.Прежде всего, я делаю это на сервере потоков

client, addr = self.s.accept()
self.clients.append(client)

, а затем на QTclass Я пытаюсь сделать это

class win(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.server = Server()
        self.timer = QTimer()
        self.timer.timeout.connect(self.update)

    def clUpdate(self):

        self.ui.ListWidget.addItems(self.server.clients)

, но когда клиент подключенна сервере у меня есть это исключение

TypeError: index 0 has type 'socket' but 'str' is expected

, так как я могу добавить сокет в listWidget?Я хочу использовать его позже, например, для отправки сообщения конкретным клиентам из списка виджетов

1 Ответ

0 голосов
/ 24 мая 2018

Я пробовал диктовку, и теперь она работает нормально

сервер

client, addr = self.s.accept()
self.clients[str(client)] = client

QT

class win(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.server = Server()
        self.timer = QTimer()
        self.timer.timeout.connect(self.update)
    def update(self):      
        itemsTextList = [str(self.ui.listWidget.item(i).text())for i in range(self.ui.listWidget.count())] 
        for key in self.server.clients:
            if key not in itemsTextList:
                self.ui.listWidget.addItem(key)
...