Как я могу перейти к определенному месту на странице с результатом поиска, используя QPdFSearchModelPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу перейти к определенному месту на странице с результатом поиска, используя QPdFSearchModel

Сообщение Anonymous »

Я создал виджет для поиска PDF-файлов. Введите строку поиска и выберите файл PDF, и результаты поиска появятся в правой нижней панели. Щелкните конкретный результат поиска, и будет выбрана страница PDF-файла, содержащая результат поиска. Хотя он выделяет конкретный результат поиска в PDF-файле, он не перемещается в определенное место на странице... Мне нужно прокрутить, чтобы найти выделенный результат. Я бы хотел, чтобы он попал в нужное место на странице. Я думаю, мне нужно передать QPointF в мой метод page_selected, но я не могу понять, как это сделать?
Внесены необходимые изменения для рабочего примера ниже:
import sys
from PyQt6.QtWidgets import QApplication,QGridLayout,QWidget,QLineEdit,QListView,QPushButton
from PyQt6.QtPdf import QPdfSearchModel,QPdfDocument
from PyQt6.QtPdfWidgets import QPdfView

class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QPdfSearchModelExample")
self.searchBtn=QPushButton()
self.searchBtn.setText("Search")
self.searchBtn.clicked.connect(self._searchBtn)
self.pdf_document=QPdfDocument(self)
self.myPdfView=QPdfView(self)
self.searchText=QLineEdit()
self.searchText.setText("Search String")
self.searchModel=QPdfSearchModel(self)

self.myPdfView.setDocument(self.pdf_document)
self.myPdfView.setSearchModel(self.searchModel)

self.searchView=QListView(self)
self.searchView.setModel(self.searchModel)
self.searchView.setWordWrap(True)

self.selModel=self.searchView.selectionModel()
self.selModel.selectionChanged.connect(self.selChange)

layout = QGridLayout()
layout.addWidget(self.searchText, 0, 0)
layout.addWidget(self.searchBtn, 0, 1)
layout.addWidget(self.searchView, 1, 0)
layout.addWidget(self.myPdfView, 1, 1)
self.setLayout(layout)

file_path = "/mnt/cloud/cases/20-12522/20-12522/1.pdf"
self.pdf_document.load(file_path)
self.searchModel.setDocument(self.pdf_document)
self.myPdfView.setCurrentSearchResultIndex(self.selModel.currentIndex().row())

def _searchBtn(self):
self.searchModel.setSearchString(self.searchText.text())

def selChange(self,index):
self.myPdfView.setCurrentSearchResultIndex(self.selModel.currentIndex().row())
link=self.myPdfView.searchModel().resultAtIndex(self.selModel.currentIndex().row())
self.myPdfView.pageNavigator().jumped.connect(lambda link: (self.myPdfView.horizontalScrollBar().setValue(int(link.location().x())), self.myPdfView.verticalScrollBar().setValue(int(link.location().y()))))
nav = self.myPdfView.pageNavigator()
nav.jump(link)

if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec())


Подробнее здесь: https://stackoverflow.com/questions/793 ... fsearchmod
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Flutter Googlemap перейти к ближайшему желаемому месту
    Anonymous » » в форуме Android
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Сигнал QPdfSearchModel dataChanged не работает
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Сигнал QPdfSearchModel dataChanged не работает
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Jetpack Compose Navigation: как перейти от корневого графа к определенному экрану в нижней панели?
    Anonymous » » в форуме Android
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как автоматически перейти к определенному разделу DOM с помощью Selenium?
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»