QGraphicsPixmapItem не появится после использования cx_freeze - PullRequest
2 голосов
/ 22 марта 2011

У меня возникают проблемы с пониманием того, почему мой QGraphicsPixmapItem не отображается после того, как я собрал приложение с помощью cx_freeze. Есть какие-либо известные проблемы с этим классом и cx_freeze, или я пропускаю некоторые настройки с cx_freeze? Вот часть, которая создает и отображает QGraphicsPixmapItem, и после этого мой setup.py для cx_freeze:

def partNo_changed(self):
    self.scene.removeItem(self.previewItem)
    partNumber = self.ui.partNo.text()
    fileLocation = 'drawings\\FULL\\%s.svg' % partNumber
    print(fileLocation)
    pixmap = QtGui.QPixmap(fileLocation)
    self.previewItem = QtGui.QGraphicsPixmapItem(pixmap)
    self.previewItem.setPos(0, 0)
    self.scene.addItem(self.previewItem)
    self.ui.svgPreview.centerOn(self.previewItem)

и вот скрипт setup.py:

from cx_Freeze import setup, Executable

files = ['drawings\\FULL']

setup(
        name = 'DBManager',
        version = '1.0',
        description = 'Makes and maintains the .csv database files.',
        author = 'Brock Seabaugh',
        options = {'build_exe': {'include_files':files, 'bin_path_includes':files}},
        executables = [Executable('dbManager_publicDB.py')])

Все остальное работает в программе, это единственное, что не работает (это работает, если я просто запускаю скрипт .py, но не когда я запускаю exe). Я не получаю ошибок при сборке или запуске EXE. Если бы кто-то мог помочь с этим, это было бы здорово. Я использую Python v3.1 и cx_freeze v4.2.3 и PyQt v4.

1 Ответ

5 голосов
/ 22 марта 2011

Итак, я нашел ответ на свой вопрос.Очевидно, проблема была не в классе QGraphicsPixmapItem, а в части приложения QtSvg.Это отбросило меня, потому что вывод cx_freeze показал, что модуль QtSvg был включен при создании исполняемого файла, но это еще не все, что нужно программе.Ему также нужен файл qt.conf.Все, что мне нужно было сделать, чтобы решить эту проблему, это найти файл qt.conf по адресу '... \ Python31 \ Lib \ site-packages \ PyQt4 \ bin \ qt.conf' и скопировать этот файл в каталог, где находится исполняемый файл вашего приложения.в и вуаля, это работает!

...