PyQt5 QPlainTextEdit 制作超链接
PyQt5 QPlainTextEdit make hyperlinks
我们是 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))
尝试使用 QTextEdit 代替 QPlainTextEdit 并将 AcceptRichText 设置为 True
我们是 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))
尝试使用 QTextEdit 代替 QPlainTextEdit 并将 AcceptRichText 设置为 True