Как использовать виджет представления документов 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