pyqt5 py2app / pyinstaller MacOS High Sierra QPixmap :: scaled: Pixmap - это нулевое растровое изображение - PullRequest
0 голосов
/ 08 сентября 2018

Я использую py2app на скрипте pyqt5 для разработки отдельного приложения. Программа должна показать фотографию в диалоге. Я использую приведенный ниже скрипт, и он отлично работает в Ubuntu и Windows, как при использовании python, так и при использовании автономных исполняемых файлов pyinstaller.

В MacOS High Sierra, однако, при использовании python для запуска сценариев изображение выглядит просто отлично. Когда я делаю исполняемые файлы, используя py2app или pyinstaller, я получаю знаменитую ошибку QPixmap::scaled: Pixmap is a null pixmap.

Вот код для раскладки изображения:

pic = QLabel(Dialog)
height_label = 300
pic.resize(Dialog.width(), height_label)
pixmap = QtGui.QPixmap(
    os.path.join(os.getcwd(), "main.jpg"))
pic.setPixmap(pixmap.scaled(pic.size(), QtCore.Qt.IgnoreAspectRatio))

1 Ответ

0 голосов
/ 01 октября 2018

Если программе нужны конкретные данные изображений, лучше указать файлы в py2app setup.py с помощью DATA_FILES = ["main.jpg"].

os.getcwd () перенаправит исполняемый каталог только в том случае, если исполняемый файл запускается из командной строки. В противном случае по умолчанию это будет домашний каталог системы. Это будет отлично работать:

    file = sys.argv[0]
    dirname = os.path.dirname(file)
    pixmap = QtGui.QPixmap(
        os.path.join(dirname, "main.jpg"))
...