Как использовать виджет представления документов KDE Okular в приложении Python Qt?

Я пишу настольное приложение на Python (3.4) для Linux, используя Qt (4.8) и PyQt.

Есть ли способ использовать / импортировать функциональность просмотра PDF в Okular в качестве виджета? Если да, то как?

2 ответа

Решение

Это работает для меня:

import sys
from PyKDE4.kdecore import ki18n, KAboutData, KCmdLineArgs
from PyKDE4.kdecore import KLibLoader as ll
from PyKDE4.kdeui import KApplication
import PyKDE4.kparts as kp


appName     = "KApplication"
catalog     = ""
programName = ki18n ("KApplication")
version     = "1.0"
description = ki18n ("KApplication")
license     = KAboutData.License_GPL
copyright   = ki18n ("(c) 2007 John Doe")
text        = ki18n ("none")
homePage    = "www.johndoe.com"
bugEmail    = "johndoe@nowhere.com "

aboutData   = KAboutData(
    appName, catalog, programName, version, description,
    license, copyright, text, homePage, bugEmail
)

KCmdLineArgs.init( sys.argv, aboutData)

app = KApplication()
win= kp.KParts.MainWindow()
okupart= ll.self().factory( 'okularpart').create()
win.setCentralWidget( okupart.widget())
win.show()

app.exec_()

Pykde может предоставить необходимую функциональность. Я не понял, как, хотя.


Получите последнюю версию pykde:

git clone git://anongit.kde.org/pykde4

Документация:
https://techbase.kde.org/Development/Languages/Python
http://api.kde.org/pykde-4.3-api/install.html

Для его сборки потребовались PyQt4 и CMAKE. Некоторые дистрибутивы Linux поставляют устаревшую версию FindPyQt.py (что приводит к ошибке, аналогичной импортеру Python: pyqtconfig). Функциональный можно найти здесь:
https://github.com/qgis/QGIS/blob/master/cmake/FindPyQt.py
Поместите его в /usr/share/kde4/apps/cmake/modules/

Для компиляции ваших файлов UI в код Python используйте pykdeuic4 вместо pyuic4:

pykdeuic4 file.ui > file.py
Другие вопросы по тегам