我们聊天应用中使用python PyQt5但我们击中一个路障,同时努力使超链接的点击在我们的QPlainTextEdit这是我们使用我们的客舱. 我们输出的仅仅是一个纯html标记没有突出强调。
chatbox = QPlainTextEdit()
chatbox.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
chatbox.setReadOnly(True)
chatbox.setBackgroundVisible(False)
chatbox.setStyleSheet("""
QPlainTextEdit{
background: rgba(255, 255, 255, 0.5);
}
""")
chatbox.setMaximumHeight(650)
chatbox.setMaximumWidth(self.screenShape.width()-50)
def handleMessage(self):
try:
message = self.chatline.text()
if message == "":
pass
else:
if message.startswith('http://') or message.startswith('https://'):
message = f'<a href=""{message}>{message}</a>'
message = f"{username}: {message}"
message.encode("utf-8")
s.sendall(message.encode())
self.chatline.setText("")
chatbox.linkActivated.connect(self.link)
chatWidget.update()
else:
message = f"{username}: {message}"
message.encode("utf-8")
s.sendall(message.encode())
self.chatline.setText("")
chatWidget.update()
except:
pass
def link(self, linkStr):
QDesktopServices.openUrl(QUrl(linkStr))