Уведомления

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

#1 Янв. 11, 2009 18:46:32

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

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

Исправил пока ша-банг, переводы строк и ошибку, которую нашёл по посту #9. В первом посте темы ссылка поправлена, в посте #4 текст поправлен тоже.
Shecspi
Можешь попробовать ещё разок. Всё перезакачивать не обязательно, можешь взять только код из поста #4.



Офлайн

#2 Янв. 11, 2009 22:37:09

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

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

Вот теперь работает.



Офлайн

#3 Янв. 11, 2009 23:04:11

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

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

Shecspi
Вот теперь работает.
Двойной щелчок работает?



Офлайн

#4 Янв. 11, 2009 23:36:26

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

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

The gray Cardinal
Двойной щелчок работает?
Нет



Офлайн

#5 Янв. 12, 2009 00:33:13

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

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

Shecspi
Нет
Блин :). Ну, в общем, мои вопросы в самом первом посте в силе, для знатоков PyQt4.



Офлайн

#6 Янв. 12, 2009 11:01:28

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

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

The gray Cardinal]
Попробовал следующее:

#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)
######################################################
Стало лучше. При переходе к новой игре 36 —> 48, посадочные места очищаются, drag_and_drop работает, но по непонятному закону. :/ Окно моргает правда, но это мелочи.
Вопросы:
1) Нет ли ошибки в логике? При double click все работает правильно.
2) Как быть со старой сценой? Методов destroy() / remove() / delete() у сцены я не нашел.

P.S. Пробовал менять методы mouseDoubleClickEvent <—> mousePressEvent - не помогает. :/



Отредактировано (Янв. 12, 2009 11:07:30)

Офлайн

#7 Янв. 12, 2009 11:37:07

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

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

Мы так будем тыщу лет выяснять, т.к. у меня нет Qt 4.3, а у тебя нет 4.4… Ошибки в логике думаю нет, т.к. те, кому удалось сыграть, не жаловались, вроде (да и у меня всё нормально). В общем, думаю, выход один — standalone executable. Откатываться на старую версию Qt в данном случае — плохая идея, имхо (ведь 4.4 — не бета и есть в репозитариях). Однако неприятно, если двойной щелчок — это глюк Qt 4.4 под Linux…



Офлайн

#8 Янв. 12, 2009 11:40:10

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

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

The gray Cardinal
2) Как быть со старой сценой? Методов destroy() / remove() / delete() у сцены я не нашел.
Видимо, что-то вроде:
for card in self.scene().items():
self.scene.removeItem(card)



Отредактировано (Янв. 12, 2009 11:41:25)

Офлайн

#9 Янв. 29, 2009 14:24:22

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

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

Немного исправил игрушку, скачать последнюю версию можно здесь (635 766 байт).

Со standalone executable есть проблема.
Компилирую так (setup.py):

from distutils.core import setup
import py2exe
setup(windows=[{"script":"milfoil.py"}], options={"py2exe":{"includes":["sip"]}})
Затем команда:
python setup.py py2exe
Программа собирается, но имеет размер ~25 Мб. Есть способы уменьшить?

И ещё. В скомпилированной версии кое-что не работает. Конкретно — строка скрипта 369 (последняя версия):
card = Element(QtGui.QPixmap(picPath), None)
QtGui.QPixmap не создаётся, видимо из-за того, что программа не может найти путь (picPath). Как следствие — через две строки далее получается деление на ноль, т.к. у несуществующего рисунка нет высоты и ширины, а я на них делю. Я отлаживал, получая путь: если значение переменной picPath вставить, например, в адресную строку окна “Мой компьютер”, всё нормально, сразу без вопросов открывается графический файл. Т.е. путь вроде как нормальный (кстати, путь содержит только прямые слеши, для универсальности). Не могу понять, в чём проблема (нескомпилированный скрипт работает без вопросов).



Отредактировано (Янв. 29, 2009 14:26:26)

Офлайн

#10 Янв. 29, 2009 14:46:54

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

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

Насчет сборки, я писал уже :)
можно еще почитать на http://www.py2exe.org/index.cgi/OptimizingSize
Насчет путей почитать http://www.py2exe.org/index.cgi/WhereAmI

Насчет путей, лично я всегда указываю относительный путь, и хоть убей, это у меня РАБОТАЕТ, хотя многие мне говорят что не должно работать:

# Перед сборкой вставь эту строчку в начало скрипта
os.chdir('\\'.join(str(os.__file__).split('\\')[:-2]))
# Далее можно указывать относительные пути open('data/image.png') и т.п.



Отредактировано (Янв. 29, 2009 14:51:52)

Офлайн

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

Board footer

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

Powered by DjangoBB

Lo-Fi Version