LINUX.ORG.RU

Навигация по QTextEdit/QTextBrowser

 ,


0

1

Продолжаю изучение PyQt. Есть 2 вопроса: 1. Почему в этом коде экран перематывается только по событию (нажатие кнопки), но не перематывается в самом начале (код события также встроен в основную последовательность)?

#!/usr/bin/python3

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from time import time

text = ''
for i in range(10000):
	text += 'text' + str(i)+' '

if __name__=="__main__":
	def on_clicked():
		text_browser.setFocus()
		text_browser.ensureCursorVisible()
	app = QApplication(sys.argv)
	start_time = time()
	window = QWidget()
	window.setWindowTitle("Класс QTextEdit")
	text_browser = QTextEdit()
	text_browser.setHtml(text)
	cursor = text_browser.textCursor()
	cursor.setPosition(2000)
	print('text:',text_browser.toPlainText()[2000:2010])
	text_browser.setTextCursor(cursor)
	text_browser.setFocus()
	text_browser.ensureCursorVisible()
	button = QPushButton("Показать позицию с курсором")
	button.clicked.connect(on_clicked)
	box = QVBoxLayout()
	box.addWidget(text_browser)
	box.addWidget(button)
	window.setLayout(box)
	window.showMaximized()
	end_time = time()
	print('Завершено за %s с.' % (str(end_time - start_time)))
	sys.exit(app.exec_())

2. Самое главное. Предположим, что в QTextBrowser мне предстоит отображать некий html код, при этом я хочу производить ряд операций над текстом, который задан между тэгами, например, выделение, копирование, изменение форматирования и пр. Нужно, чтобы по клику мыши можно было бы однозначно определить, например, соответствующее место в html коде, в простом тексте, номер тэга и т.п. Как составить программу так, чтобы бóльшая часть расчетов пришлась на алгоритмы, встроенные в QT?

★★★★★

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.