Найти - Пользователи
Полная версия: Различный результат скрипта в linux и windows
Начало » GUI » Различный результат скрипта в linux и windows
1
g-kit
привет,

имеется код который успешно генерит таблицу в линуксе (там же и писался). Решил поробовать под виндой: скрипт спотыкается на таком куске кода:

def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
if role != QtCore.Qt.DisplayRole:
return QtCore.QVariant()
if orientation == QtCore.Qt.Horizontal:
if section == NAME:
return QtCore.QVariant(“Name”)
elif section == OWNER:
return QtCore.QVariant(“Owner”)
elif section == COUNTRY:
return QtCore.QVariant(“Country”)
elif section == DESCRIPTION:
return QtCore.QVariant(“Description”)
elif section == TEU:
return QtCore.QVariant(“TEU”)
return QtCore.QVariant(int(section + 1))

и “сыпет” такими коментами (в основном ругаясь на вторую строку, но периодически на все остальные, с началом “return”):

TypeError: PyQt4.QtCore.Qvariant represents a mapped type and cannot be instantiated

пробовал на разных машинах - результат тот же: на линухе все ок, на винде - проблемс. Различия в версиях: на линухе 4.5, в винде - 4.7.1

может к винде код нужно подготовить как-то?

google не помог… :(

спасибо,
-вадим
poltergeist
У вас используется разная версия API для класса QVariant. Вот: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html#id11
Как менять версию API читайте тут: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html#selecting-incompatible-apis

Выберите одно из двух, если не планируете использовать PyQt4 ниже версии 4.5, то юзайте вторую версию API для класса QVariant. В этом случае вы не создаёте QVariant явно, а просто передаёте питоновские типы данных. Т.е. вместо return QVariant('Name') вы делаете просто return ‘Name’.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB