Продолжаю изучение 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?