首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将PyQt QLabel设置为在连接到服务器后显示peerAddress

将PyQt QLabel设置为在连接到服务器后显示peerAddress
EN

Stack Overflow用户
提问于 2016-05-02 02:05:58
回答 1查看 113关注 0票数 0

我试着用PyQt4做简单的操作。在客户机连接到服务器之后,我想更改标签中的文本以显示服务器的地址。

代码语言:javascript
复制
def connectToServer(self):
    self.connectButton.setEnabled(False)
    self.socket.connectToHost(HOST, PORT)
    print(self.socket.peerAddress())
    try:
        self.lblSrvConnected.setText(self.socket.peerAddress()) # changes lbl to address
    except:
        self.lblSrvConnected.setText('Some error')

print语句提供<PyQt4.QtNetwork.QHostAddress object at 0x02C23DB0>,并且标签始终从expect更改为Some error。我试着用str()转换成字符串,使用不带括号的peerAddress等等。当我调用peerName()而不是peerAddress()时,它会打印localhost,但peerPort()会给出0而不是我使用的端口。

我想我有两个问题。

首先,我无法从peerAddress获取地址和端口。我尝试将其赋值给变量,但出现错误:TypeError: QHostAddress' object is not iterable

其次,我希望在建立连接之前尝试更改标签。我试过用.waitForConnected(),但也做不到。

我找不到怎么让它工作。

EN

回答 1

Stack Overflow用户

发布于 2016-05-02 03:33:31

尝试:

QHostAddress.toString (self)

以字符串形式返回地址。

例如,如果地址是IPv4地址127.0.0.1,则返回的字符串为127.0.0.1。对于IPv6,字符串格式将遵循RFC5952建议。

来自documentation QT4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36970106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档