سؤال

في برنامج PYQT4، لدي QLABEL عرض صورة مع التعليمات البرمجية التالية:

في رمز التغذية:

Image=QImage(som_path_from_a_fileDialog)

في طريقة تغيير الحجم:

pixmap = QPixmap.fromImage(Image)
pixmap = pixmap.scaled(self.display.size())
self.display.setPixmap(pixmap)

عندما أقوم بتنفيذ البرنامج النصي الخاص بي مع Python، فإنه يعمل بشكل جيد، ويمكنني عرض ملفات .bmp و JPEG. إذا قمت بتجميعها باستخدام PY2EXE، فسأكون قادرا فقط على عرض ملفات .bmp. سوف تفشل شاشة ملف JPEG مع:

QPainter::begin: Paint device returned engine == 0, type: 3
QPainter::end: Painter not active, aborted
QPixmap::scaled: Pixmap is a null pixmap

تحرير: إنه نسخة مكررة هذا السؤال

هل كانت مفيدة؟

المحلول

دعم العديد من تنسيقات الصور في الإصدارات الحديثة من pyqt4 المتاحة عبر الإضافات. يمكن العثور على هذه الإضافات في الخاص بك C:\PythonXY\Lib\site-packages\PyQt4\plugins\imageformats الدليل. يجب عليك نسخ imageformats دليل إلى الدليل مع exe الخاص بك. يرجى ملاحظة أن تحتاج إلى imageformats الدليل الصحيح على طول pyapp.exe الخاص بك. أو يجب أن تضع في نفس الدليل حيث يقع Pyapp.exe الخاص بك Qt.conf الخاص بك خاص حيث يمكنك تحديد المسار إلى إضافات الصور، على سبيل المثال

[Paths]
Plugins = Library\plugins

فيما يلي مثال على التعليمات البرمجية لنسخ البرنامج المساعد SQLITE (ليس في الصور، ولكن ستحصل على الفكرة) عندما بنيت EXE:

from distutils.core import setup
import py2exe
import os, sys
import PyQt4

setup(options = {"py2exe": {"includes": ["sip"]}},
     data_files=[('sqldrivers', [os.path.join(os.path.dirname(PyQt4.__file__), 
                                              'plugins', 
                                              'sqldrivers', 
                                              'qsqlite4.dll')])],
     windows = ["myapp.py"],
     )
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top