Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt4: настольная игрушка (попробуйте скрипт) [RSS Feed]

#1 Янв. 29, 2009 19:14:07

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt4: настольная игрушка (попробуйте скрипт)

Что то я запутался :)
Как не находит картинки? выведи в дебаг путь к картинке, передаваемый функции, из заодно выведи os.getcwd()



Офлайн

#2 Янв. 29, 2009 19:24:27

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: настольная игрушка (попробуйте скрипт)

Картинка:

C:/Job/Current/Scripts/Milfoil/dist/pics/packs/Standard/064.gif
Прямой вызов os.getcwd():
C:\Job\Current\Scripts\Milfoil\dist
Получено так:
QtGui.QMessageBox.information(self, '', picPath, QtGui.QMessageBox.Ok)
QtGui.QMessageBox.information(self, '', os.getcwd(), QtGui.QMessageBox.Ok)



Офлайн

#3 Янв. 29, 2009 22:44:34

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: настольная игрушка (попробуйте скрипт)

The gray Cardinal
Привет.
Посмотрел milfoil.py .

PyQt4.4.2 (Qt4.4.0) , Mandriva2007:
=============================
Выдает:

Traceback (most recent call last):
File "./milfoil.py", line 708, in mousePressEvent
mime.setImageData(QtCore.QVariant(self.pixmap())) # запоминаем рисунок
TypeError: argument 1 of QVariant() has an invalid type
Если закоментровать эту строку, то все нормально, все работает.

PyQt4.3.2 (Qt4.3.2), SUSE10.3:
==========================
Все работает( drag_and_drop тоже ) при закоментированной 708 строке и
#####################################################
#self.scene.clear() # очистка сцены
self.scene = Scene()
self.view = QtGui.QGraphicsView(self.scene, self)
self.view.setBackgroundBrush(QtGui.QColor(0, 128, 64)) # цвет фона представления
self.setCentralWidget(self.view)
#####################################################
Правда здесь, при закрытии окна вылетает сегфолт :/
А так все нормально, играть можно. :)



Офлайн

#4 Янв. 29, 2009 22:51:49

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: настольная игрушка (попробуйте скрипт)

gmorgunov
Ага, спасибо.

Вопрос с путями при компиляции в exe актуален.



Офлайн

#5 Янв. 31, 2009 17:30:04

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: настольная игрушка (попробуйте скрипт)

Сейчас попробовал собрать другим способом, “python setup.py build”, файл setup.py:

from cx_Freeze import setup, Executable

setup(name = "milfoil",
version = "0.2",
description = "milfoil patience",
executables = [Executable("milfoil.py")],
options = {'build_exe' : {
'includes' : ['sip', 'encodings.cp1251'],
'excludes' : ['_ssl', 'pyreadline', 'difflib', 'doctest', 'optparse', 'pickle', 'calendar'],
'base' : 'Win32GUI',
}}
)
Та же проблема. Строка скрипта 369 не создаёт QtGui.QPixmap.
При этом абсолютно нормальный путь:
QtGui.QMessageBox.information(self, '', picPath, QtGui.QMessageBox.Ok)
И абсолютно чёткое True:
QtGui.QMessageBox.information(self, '', unicode(QtGui.QPixmap(picPath).isNull()), QtGui.QMessageBox.Ok)
И абсолютно чёткое True:
QtGui.QMessageBox.information(self, '', unicode(os.path.exists(picPath)), QtGui.QMessageBox.Ok)
Т.е. файл есть, мы его видим, но QtGui.QPixmap делать отказываемся.



Офлайн

#6 Ноя. 13, 2009 05:47:01

akadan47
От:
Зарегистрирован: 2009-11-13
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: настольная игрушка (попробуйте скрипт)

Нашел как это лечить (наверное, многим кто наступил на эти грабли пригодится):
в папку с бинарником (после компиляции) положить папку “imageformats” с DLL'ями (C:\Python26\Lib\site-packages\PyQt4\plugins\imageformats).
После этого Pixmap начинает создаваться



Отредактировано (Ноя. 13, 2009 05:49:24)

Офлайн

  • Начало
  • » GUI
  • » PyQt4: настольная игрушка (попробуйте скрипт)[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version