如何在 Python Qt 应用程序中使用 KDE Okular 的文档视图小部件?
How to use KDE Okular's document view widget in a Python Qt app?
我正在 Python (3.4) Linux 使用 Qt (4.8) 和 PyQt 编写桌面应用程序。
有没有办法 use/import Okular 的 pdf 查看功能作为一个小部件?如果是,如何?
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 importerror : 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
这对我有用:
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_()
我正在 Python (3.4) Linux 使用 Qt (4.8) 和 PyQt 编写桌面应用程序。
有没有办法 use/import Okular 的 pdf 查看功能作为一个小部件?如果是,如何?
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 importerror : 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
这对我有用:
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_()