文章目录
- 1. 简介
- 1.1. 常用方法:
- 1.2 常用信号:
- 2. Text Browser常用方法使用案例
- 3. Text Browser常用信号使用案例
1. 简介
PyQt5中的QTextBrowser类用于显示富文本内容,并支持与用户交互。以下是一些常用的方法和信号:
1.1. 常用方法:
- setText(text: str): 设置文本内容。
textBrowser.setText("Hello, PyQt5!")
- setHtml(html: str): 设置HTML格式的文本内容。
textBrowser.setHtml("<h1>Hello, PyQt5!</h1>")
- toPlainText() -> str: 获取纯文本内容。
text = textBrowser.toPlainText()
- toHtml() -> str: 获取HTML格式的内容。
html = textBrowser.toHtml()
- clear(): 清除文本内容。
textBrowser.clear()
- insertPlainText(text: str): 在光标位置插入纯文本。
textBrowser.insertPlainText("Inserted Text")
- insertHtml(html: str): 在光标位置插入HTML格式的文本。
textBrowser.insertHtml("<b>Inserted</b> Text")
- find(text: str): 在文本中查找指定文本,并将光标移到找到的位置。
textBrowser.find("search text")
1.2 常用信号:
- anchorClicked: 当用户点击了一个超链接时发射。
textBrowser.anchorClicked.connect(handleAnchorClicked)
- highlighted(anchor: str): 当鼠标悬停在一个超链接上时发射,传递悬停的超链接。
textBrowser.highlighted.connect(handleHighlighted)
- sourceChanged(src: QUrl): 当用户点击了一个包含
src
属性的超链接时发射,传递链接的URL。
textBrowser.sourceChanged.connect(handleSourceChanged)
- textChanged: 当文本内容发生改变时发射。
textBrowser.textChanged.connect(handleTextChanged)
2. Text Browser常用方法使用案例
我们用下面一个简单的示例,演示如何使用QTextBrowser
的常用方法:
import sys
from PyQt5.QtWidgets import (QApplication, QTextBrowser, QWidget, QPushButton, QLabel,
QVBoxLayout, QHBoxLayout, QLineEdit)
class TextBrowserExample(QWidget):
def __init__(self):
super().__init__()
# 初始化界面
self.initUI()
def initUI(self):
# 设置窗口标题和大小
self.setWindowTitle("Text Browser Example")
self.resize(500, 300)
# 垂直布局1:包含一个标签和一个 QTextBrowser
v_layout1 = QVBoxLayout()
self.label = QLabel(self)
self.label.setText("文本内容")
v_layout1.addWidget(self.label)
self.textBrowser = QTextBrowser(self)
self.textBrowser.insertPlainText("Welcome to the QTextBrowser example.")
v_layout1.addWidget(self.textBrowser)
# 垂直布局2:包含三个按钮
v_layout2 = QVBoxLayout()
self.button1 = QPushButton(self)
self.button1.setText("设置文本")
self.button1.clicked.connect(self.set_text)
v_layout2.addWidget(self.button1)
self.button2 = QPushButton(self)
self.button2.setText("获取文本")
self.button2.clicked.connect(self.get_text)
v_layout2.addWidget(self.button2)
self.button3 = QPushButton(self)
self.button3.setText("清除文本")
self.button3.clicked.connect(self.clear_text)
v_layout2.addWidget(self.button3)
# 水平布局1:将垂直布局1和垂直布局2并排放置
h_layout1 = QHBoxLayout()
h_layout1.addLayout(v_layout1)
h_layout1.addLayout(v_layout2)
# 水平布局2:包含一个标签和一个 QLineEdit,用于显示获取的文本内容
h_layout2 = QHBoxLayout()
self.label1 = QLabel(self)
self.label1.setText("获取的文本内容是: ")
h_layout2.addWidget(self.label1)
self.line = QLineEdit(self)
h_layout2.addWidget(self.line)
# 垂直布局3:将水平布局1和水平布局2垂直排列
v_layout3 = QVBoxLayout()
v_layout3.addLayout(h_layout1)
v_layout3.addLayout(h_layout2)
# 将整个界面的布局设置为垂直布局3
self.setLayout(v_layout3)
# 设置文本按钮的点击事件处理函数
def set_text(self):
self.textBrowser.setText("Hello, PyQt5!")
# 获取文本按钮的点击事件处理函数
def get_text(self):
plain_text = self.textBrowser.toPlainText()
self.line.setText(plain_text)
# 清除文本按钮的点击事件处理函数
def clear_text(self):
self.textBrowser.clear()
# 主程序入口
if __name__ == "__main__":
# 创建应用程序对象
app = QApplication(sys.argv)
# 创建 TextBrowserExample 实例
ex = TextBrowserExample()
# 显示窗口
ex.show()
# 运行应用程序
sys.exit(app.exec_())
这个例子演示了一个带有QTextBrowser
和按钮的界面。用户可以点击按钮来设置、获取和清除QTextBrowser
中的文本内容。运行结果如下:
3. Text Browser常用信号使用案例
我们用下面一个例子来演示QTextBrowser
常用信号:
import sys
from PyQt5.QtWidgets import QApplication, QTextBrowser, QVBoxLayout, QWidget
class TextBrowserExample(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Text Browser Signals Example")
self.resize(400, 300)
# 创建 QTextBrowser 实例
self.textBrowser = QTextBrowser(self)
# 垂直布局
layout = QVBoxLayout()
layout.addWidget(self.textBrowser)
self.setLayout(layout)
# 将信号与槽函数连接
self.textBrowser.anchorClicked.connect(self.on_anchor_clicked)
# 设置一些HTML内容
self.textBrowser.setHtml("<a href='https://www.google.com'>Visit Google</a>")
def on_anchor_clicked(self, url):
# 当超链接被点击时,会触发此槽函数
self.textBrowser.append("Anchor clicked: " + url.toString())
if __name__ == "__main__":
app = QApplication(sys.argv)
ex = TextBrowserExample()
ex.show()
sys.exit(app.exec_())
这个示例创建了一个简单的PyQt5应用程序,包含一个QTextBrowser
实例。当用户点击文本浏览器中的超链接时,anchorClicked
信号会触发on_anchor_clicked
槽函数,将被点击的链接打印到文本浏览器中。运行结果如下