如何在listWidg中添加socket

2024-06-24 12:53:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助将python的socket对象添加到pyqt5listwidget。 首先,我在线程服务器上做这件事

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?我想稍后使用它,例如,从listWidget向特定客户机发送消息


Tags: 对象self服务器clientuiserverdefsocket
1条回答
网友
1楼 · 发布于 2024-06-24 12:53:33

我试过dicts,现在可以了

服务器

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

夸脱

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)

相关问题 更多 >