Задать вопрос

Почему возникают проблемы при использвоании pyQt4 с python3, а с python2 нет?

Здравствуйте. Только начал изучать pyqt. Для этого использую книгу Rapid GUI Programming with Python and Qt.
Имеется такая часть кода (целиком взято из книги).
settings = QtCore.QSettings()
        self.recentFiles = settings.value('RecentFiles').toStringList()
        size = settings.value('MainWindow/Size', QtCore.QVariant(QtCore.QSize(600, 500))).toSize()
        self.resize(size)
        position = settings.value('MainWindow/Position', QtCore.QVariant(QtCore.QPoint(0, 0)))\
            .toPoint()
        self.move(position)
        self.restoreState(settings.value('MainWindow/State').toByteArray())
        self.setWindowTitle('Image Changer')
        self.updateFileMenu()
        QtCore.QTimer.singleShot(0, self.loadInitialFile)

Без нее в python3 все работает.
С ней:
line 123, in __init__
    self.recentFiles = settings.value('RecentFiles').toStringList()
AttributeError: 'NoneType' object has no attribute 'toStringList'

Комментим :
# self.recentFiles = settings.value('RecentFiles').toStringList()
, и получаем
line 125, in __init__
    size = settings.value('MainWindow/Size', QtCore.QVariant(QtCore.QSize(600, 500))).toSize()
TypeError: PyQt4.QtCore.QVariant represents a mapped type and cannot be instantiated

Изначально использовал python3, ради эксперемента запустил через второй, все заработало (даже, если ничего не комментить).
Подскажите куда копать.
Так же если знаете аткие, то посоветуйте книги по pytqt (если вообще такие есть, эту то еле нашел, тоже на тостере).
  • Вопрос задан
  • 466 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@sozforex
Программист, Python
У PyQT4 две версии API (v1, v2)

Под python3 PyQT4 предоставляет доступ к API v2 по умолчанию
pyqt.sourceforge.net/Docs/PyQt4/pyqt_qsettings.htm...

Насколько я понимаю, в книге "Rapid GUI Programming with Python and Qt" в примерах используется api v1.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы