Russian Qt Forum

Qt => Qt Quick => Тема начата: SektorCT от Май 22, 2023, 16:21



Название: Открытие pdf файла в WebEngineView
Отправлено: SektorCT от Май 22, 2023, 16:21
Всем првиет.
Имеется финкционал для открытия обычных интернет страниц.
Но теперь надо и открытие нужных файлов реализовать, чтоыб в строке поиска был путь к файлу.
Плюс вопрос, функционал дял рабоыт с файлом типа "поиска, переворот страницы, кропки +/- и т.д." это как то реализовывается?
Если важно то на данный момент использую версию 6.4.2

Буду признателен за какую то информацию или может есть какие то примеры.
Спасибо.


Название: Re: Открытие pdf файла в WebEngineView
Отправлено: tux от Май 22, 2023, 23:39
Кто на ком должен стоять? Потрудитесь излагать свои мысли яснее. И, лучше без очепяток.  ;D


Название: Re: Открытие pdf файла в WebEngineView
Отправлено: SektorCT от Май 23, 2023, 09:52
Кто на ком должен стоять? Потрудитесь излагать свои мысли яснее. И, лучше без очепяток.  ;D

Embeddedd устройство, на нем приложение со встроенным браузером. Открывает только веб страницы.
Нужно добавить функционал открытия файлов (pdf, txt, docx), при открытии в строке поиска отображается путь к самому файлу.
Ну а выше я описал функционал который хотелось бы использовать при работе с открытым документом.


Название: Re: Открытие pdf файла в WebEngineView
Отправлено: SektorCT от Май 23, 2023, 17:04
Ошибочка вышла, нужно элемент или какой то модуль в котормо можно настроить отображение pdf файла. То есть в не браузера.
Как оказалось в браузере все достаточно просто.


Название: Re: Открытие pdf файла в WebEngineView
Отправлено: tux от Май 23, 2023, 20:35
https://doc.qt.io/qt-5/qtpdf-pdfviewer-pageselector-cpp.html
Подойдёт? И для Qt6 есть
С docx будет явно сложнее и только для винды, скорее всего. Хотя всякие ActiveX к Qt вполне прикручиваются.


Название: Re: Открытие pdf файла в WebEngineView
Отправлено: SektorCT от Май 24, 2023, 18:14
https://doc.qt.io/qt-5/qtpdf-pdfviewer-pageselector-cpp.html
Подойдёт? И для Qt6 есть
С docx будет явно сложнее и только для винды, скорее всего. Хотя всякие ActiveX к Qt вполне прикручиваются.

Как вижу он для виджетов, для QML нету.
Я нашел другеи обертки для pdf https://doc.qt.io/qt-6.4/qtquick-pdf-qmlmodule.html

Вопрос такой немного не по теме, мне надо по кнопке с ToolBar выбрать файл, это или pdf или txt и уже тем или иным способом открывать файл и его отображать. Вопрос, как лучше это сделать? Мне надо будет в тот qml файл что отвечает за обработку каждого формата передавать как минимум путь к файлу. Через Loader это невозможно, хотя и удобный вариант выбора какой файл нужно грузануть. Посоветуйте пожалуйста.


Название: Re: Открытие pdf файла в WebEngineView
Отправлено: tux от Май 25, 2023, 00:51
Опять не совсем понятно, что именно вы хотите сделать? Различить типы файлов можно просто по расширению (не совсем надёжно, но так вроде принято в винде).
А насчёт пути: можно, например, сначала сменить текущий каталог на нужный, а потом уже открыть файл, как локальный. Не совсем красиво, но, можно попробовать.


Название: Re: Открытие pdf файла в WebEngineView
Отправлено: SektorCT от Май 25, 2023, 15:58
Опять не совсем понятно, что именно вы хотите сделать? Различить типы файлов можно просто по расширению (не совсем надёжно, но так вроде принято в винде).
А насчёт пути: можно, например, сначала сменить текущий каталог на нужный, а потом уже открыть файл, как локальный. Не совсем красиво, но, можно попробовать.

Вот смотрите:
Код:
    function object()
    {
        if (fileDialog.selectedNameFilter.index === 0)
        {
            console.log("PDF")
            return "ReadPdf.qml"
        }
        else if(fileDialog.selectedNameFilter.index === 1)
        {
            console.log("TXT")
            return "ReadTxt.qml"
        }
    }
    Loader
    {
       id: myLoader
       anchors.fill: parent

       Component.onCompleted: {
           squareLoader.setSource(url,
                { "color": "blue" }
            );
       }
    }



    FileDialog
    {
        id: fileDialog
        title: "Open file"
        nameFilters: [ "PDF file (*.pdf)" , "TXT file (*.txt)" ]
        onAccepted:
        {
            //     selectedFile
        }
    }

Вот из FileDialog надо передать свойство selectedFile, а передать нужно в том случаи если был выбран pdf файл. Loader имеет свойство setSource и принимает 2 аргумента, url к файлу и тот самый набор пропертей что мне и надо.
Вопрос в том как создать этот набор пропертей для каждого из отдельных типов файлов. В моем случаи пока pdf