如何将 QTextBrowser 的光标(其中有一个 html 表)移动到 PyQt5 中的特定行?

收割者

我创建了一个 QTextBrowser 来在我的代码中显示一个 html 表。但是当我尝试使用setTextCursor方法将光标移动到特定行时,它没有做到这一点。

文本浏览器的滚动条确实移动了,但没有移动到特定的行。这个问题与html表有关吗?

import sys
from PyQt5.QtGui import QTextCursor
from PyQt5.QtWidgets import QWidget, QTextBrowser, QMainWindow, QPushButton, QHBoxLayout, QApplication

class MyTextBrowser(QTextBrowser):

    def __init__(self, parent = None):
        super(MyTextBrowser, self).__init__(parent)
        self.createTable()

    def createTable(self, line_num = 1):
        # Create an html table with 100 lines
        html = '<table><tbody>'
        for i in range(0, 100):
            # Highlight specified line
            if line_num == i+1:
                html += '<tr style="background-color: #0000FF;"><td>Line</td><td>%d</td></tr>' % (i+1)
            else:
                html += '<tr><td>Line</td><td>%d</td></tr>' % (i+1)
        html += '</tbody></table>'
        self.setHtml(html)

        # Move the cursor to the specified line
        cursor = QTextCursor(self.document().findBlockByLineNumber(line_num))
        self.setTextCursor(cursor)

class MyWindow(QMainWindow):

    def __init__(self, parent = None):
        super(MyWindow, self).__init__(parent)
        self.createLayout()

    def createLayout(self):
        # Create the text browser and a button
        self.textBrowser = MyTextBrowser()
        self.button = QPushButton('Move cursor')
        self.button.clicked.connect(self.buttonClicked)
        self.currentLine = 1

        layout = QHBoxLayout()
        layout.addWidget(self.button)
        layout.addWidget(self.textBrowser)

        window = QWidget()
        window.setLayout(layout)
        self.setCentralWidget(window)

    def buttonClicked(self):
        # Move the cursor down for 10 lines when the button is clicked
        self.currentLine += 10
        if self.currentLine > 100:
            self.currentLine = 1

        self.textBrowser.createTable(self.currentLine)

app = QApplication(sys.argv)
window = MyWindow()
window.resize(640, 480)
window.show()
sys.exit(app.exec_())
收割者

经过一些尝试,我发现 QTextBrowser 似乎将每个td标记视为一个新行。

所以,而不是使用

cursor = QTextCursor(self.document().findBlockByLineNumber(line_num))
self.setTextCursor(cursor)

我们应该使用

cursor = QTextCursor(self.document().findBlockByLineNumber(line_num * td_num))
self.setTextCursor(cursor)

其中td_num表格每一行中td标签的数量

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我有一个行表,其中有复选框。如何选择特定的复选框

来自分类Dev

如何将行值移动到另一个表并重做到html中的上一个表?

来自分类Dev

更新该行后如何将表中的特定行移动到另一个表

来自分类Dev

如何将光标移动到表的下一列中的下一个输入?

来自分类Dev

Python - pyqt5 - 将文本设置为具有不同颜色的 qtextbrowser

来自分类Dev

Python PyQt5 QTextBrowser中的所有文本都变得“活跃”

来自分类Dev

如何将数据拆分为多个工作表,其中有 3 个标题行?

来自分类Dev

如何将一个表中的数据移动到30天以上记录的另一表中?

来自分类Dev

如何将光标直接移动到下一个新行?

来自分类Dev

如何将行从一个表移动到另一个表中不存在的行?

来自分类Dev

如何将多个QTextBrowser实例打印到一个PDF文件中?

来自分类Dev

如何将特定 XElements 移动到 C# 中的上一个节点?

来自分类Dev

如何根据用户表单文本框输入将光标移动到工作表中的行?

来自分类Dev

如何在PyQt5中在屏幕上移动点?

来自分类Dev

如何从表中获取数据并移动到jquery中的另一个表

来自分类Dev

Excel VBA代码将数据从4个特定的单元格移动到下一个可用行中的另一个工作表

来自分类Dev

如何优雅地将多个信号连接到 PyQt5 中的一个函数?

来自分类Dev

如何将一个点的弹出窗口移动到屏幕特定部分的锚定/位置?

来自分类Dev

psql将数据移动到另一个表,而保留对新行的引用

来自分类Dev

Cassandra:如何将整个表移动到另一个键空间

来自分类Dev

将数据移动到Laravel中的另一个表

来自分类Dev

mysql-将行从一个表移动到另一个表

来自分类Dev

使用SQLAlchemy将行从一个表批量移动到另一个表

来自分类Dev

MySQL将随机行从一个表移动到另一个表

来自分类Dev

我有一个Excel文件。在其中有多个列和行的情况下,如何根据ggplot的行过滤列

来自分类Dev

自行在PyQt5中随机移动一个圆吗?

来自分类Dev

如何将变量的值移动到汇编中的另一个变量

来自分类Dev

如何将数据移动到memsql中的另一个文件夹

来自分类Dev

如何将活动窗口移动到XFCE中的另一个显示

Related 相关文章

  1. 1

    我有一个行表,其中有复选框。如何选择特定的复选框

  2. 2

    如何将行值移动到另一个表并重做到html中的上一个表?

  3. 3

    更新该行后如何将表中的特定行移动到另一个表

  4. 4

    如何将光标移动到表的下一列中的下一个输入?

  5. 5

    Python - pyqt5 - 将文本设置为具有不同颜色的 qtextbrowser

  6. 6

    Python PyQt5 QTextBrowser中的所有文本都变得“活跃”

  7. 7

    如何将数据拆分为多个工作表,其中有 3 个标题行?

  8. 8

    如何将一个表中的数据移动到30天以上记录的另一表中?

  9. 9

    如何将光标直接移动到下一个新行?

  10. 10

    如何将行从一个表移动到另一个表中不存在的行?

  11. 11

    如何将多个QTextBrowser实例打印到一个PDF文件中?

  12. 12

    如何将特定 XElements 移动到 C# 中的上一个节点?

  13. 13

    如何根据用户表单文本框输入将光标移动到工作表中的行?

  14. 14

    如何在PyQt5中在屏幕上移动点?

  15. 15

    如何从表中获取数据并移动到jquery中的另一个表

  16. 16

    Excel VBA代码将数据从4个特定的单元格移动到下一个可用行中的另一个工作表

  17. 17

    如何优雅地将多个信号连接到 PyQt5 中的一个函数?

  18. 18

    如何将一个点的弹出窗口移动到屏幕特定部分的锚定/位置?

  19. 19

    psql将数据移动到另一个表,而保留对新行的引用

  20. 20

    Cassandra:如何将整个表移动到另一个键空间

  21. 21

    将数据移动到Laravel中的另一个表

  22. 22

    mysql-将行从一个表移动到另一个表

  23. 23

    使用SQLAlchemy将行从一个表批量移动到另一个表

  24. 24

    MySQL将随机行从一个表移动到另一个表

  25. 25

    我有一个Excel文件。在其中有多个列和行的情况下,如何根据ggplot的行过滤列

  26. 26

    自行在PyQt5中随机移动一个圆吗?

  27. 27

    如何将变量的值移动到汇编中的另一个变量

  28. 28

    如何将数据移动到memsql中的另一个文件夹

  29. 29

    如何将活动窗口移动到XFCE中的另一个显示

热门标签

归档