2

python-poppler-qt4をダウンロードしてインストールし、PDFページを表示するための簡単なQtアプリケーションを試しています。私はWebから取得できたものに従いました。つまり、PDFをQImageに変換し、次にQPixMapに変換しましたが、機能しません(表示されるコンテンツのない小さなウィンドウだけが表示されます)。

ある時点で失敗した可能性があります(QImage.width()入力した幅を返し、QPixMap.width()0を返します)。

コードは次のとおりです。

#!/usr/bin/env python

import sys
from PyQt4 import QtGui, QtCore
import popplerqt4

class Application(QtGui.QApplication):
    def __init__(self):
        QtGui.QApplication.__init__(self, sys.argv)     
        self.main = MainWindow()
        self.main.show()

    class MainWindow(QtGui.QFrame):
        def __init__(self, parent=None):
            QtGui.QWidget.__init__(self, parent)
            self.layout = QtGui.QVBoxLayout()
            self.doc = popplerqt4.Poppler.Document.load('/home/benjamin/test.pdf')
            self.page = self.doc.page(1)
# here below i entered almost random dpi, position and size, just to test really 
            self.image = self.page.renderToImage(150, 150, 0, 0, 210, 297)
            self.pixmap = QtGui.QPixmap()
            self.pixmap.fromImage(self.image)
            self.label = QtGui.QLabel(self)
                    self.label.setPixmap(self.pixmap)
            self.layout.addWidget(self.label)
            self.setLayout(self.layout)

    if __name__ == "__main__":
            application = Application()
            sys.exit(application.exec_())

ここでどこがうまくいかないのですか?ありがとう。

4

1 に答える 1

4

私はPythonに精通していないため、これは直接適用されない可能性がありますがQPixmap::fromImage、を返す静的関数ですQPixmap。したがって、コードは次のようになります。

 self.pixmap = QtGui.QPixmap.fromImage(self.image)

つまり、self.pixmap.fromImage変更せずself.pixmapに、パラメータとして指定した画像から生成された新しいピックスマップを返します。

于 2012-05-12T10:38:09.933 に答える