Уведомления

Группа в Telegram: @pythonsu

#1 Март 9, 2017 06:35:45

MrViktor
Зарегистрирован: 2017-03-09
Сообщения: 83
Репутация: +  8  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

Всем добрый день.
Начал изучать Qt4, но так как не нашел нормально документации по PyQt на русском языке, взял доку по Qt4 для C++.
Я использую:
ОС - Ubuntu 15.04
ЯП - Python 3.4
GUI - PyQt4 (ставил из репов и собирал вручную результат один)

Суть проблемы в том, что в примере из документации используют QStringList из модуля QtCore, но когда я пытаюсь его даже импортировать (в консоле python) получаю ошибку

 Python 3.4.3 (default, Mar 26 2015, 22:03:40) 
[GCC 4.9.2] on linux
>>> from PyQt4.QtCore import QStringList
Traceback (most recent call last):
  File "/usr/lib/python3.4/code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>

А когда в в коде пытаюсь получить экземпляр класса QStringList, получаю ошибку
 /usr/bin/python3.4 /home/Vik/Projects/test_my/ex_3.py
Traceback (most recent call last):
  File "/home/Vik/Projects/test_my/ex_3.py", line 35, in <module>
    test = QStringList()
NameError: name 'QStringList' is not defined
Process finished with exit code 1
Подскажите, что я делаю не так, в интернете очень много примеров с использованием этого класса в PyQt4.

Отредактировано MrViktor (Март 9, 2017 06:45:52)

Офлайн

#2 Март 9, 2017 07:32:03

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

MrViktor
не нашел нормально документации по PyQt на русском языке
https://www.litres.ru/n-prohorenok/python-3-i-pyqt-razrabotka-prilozheniy-5582586/



Офлайн

#3 Март 9, 2017 08:11:13

vic57
Зарегистрирован: 2015-07-07
Сообщения: 908
Репутация: +  127  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

MrViktor
GUI - PyQt4 (ставил из репов и собирал вручную результат один)
в консоли
 pydoc -p 8000
в браузере http://localhost:8000
в секции site-packages д.б. PyQt
вообще лучше через pip ставить
 sudo apt-get install python-pip3
pip3 install PyQt4

Отредактировано vic57 (Март 9, 2017 08:43:18)

Прикреплённый файлы:
attachment SCR.png (27,0 KБ)

Офлайн

#4 Март 9, 2017 08:55:30

MrViktor
Зарегистрирован: 2017-03-09
Сообщения: 83
Репутация: +  8  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

FishHook
Спасибо, смотрел в сторону этой книжки, но не смог найти. Сейчас попробую найти скан в инете. Сами ее читали? интересует в плане полезности как она?

vic57
Вообще шикарно… не знал об этом, только в моем случае в консоли
 pydoc3 -p 8000

Насколько я понял, QString и QStringList - убрали начиная с какой-то версии PyQt, адаптировали вывод под python формат.

Офлайн

#5 Март 9, 2017 09:00:32

vic57
Зарегистрирован: 2015-07-07
Сообщения: 908
Репутация: +  127  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

MrViktor
Насколько я понял, QString и QStringList - убрали начиная с какой-то версии PyQt, адаптировали вывод под python формат.
да не должно быть
попробуй
 >>> from PyQt4.Qt import *
>>> l = QStringList()
>>> l
<PyQt4.QtCore.QStringList object at 0x10a2bea28>
>>> 

Отредактировано vic57 (Март 9, 2017 09:01:54)

Офлайн

#6 Март 9, 2017 09:01:17

MrViktor
Зарегистрирован: 2017-03-09
Сообщения: 83
Репутация: +  8  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

vic57
вообще лучше через pip ставить

sudo apt-get install python-pip3
pip3 install PyQt4

Нет-нет, проблема не в установке. Становил вообще через
 sudo apt-get install python3-PyQt4
Проблема в том, что QString уже нет

Офлайн

#7 Март 9, 2017 09:30:24

MrViktor
Зарегистрирован: 2017-03-09
Сообщения: 83
Репутация: +  8  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

vic57
да не должно быть
попробуй
Вот что нашел
 Selecting Incompatible APIs
PyQt4 provides limited support for multiple incompatible APIs and the ability for an application to select between them at run-time. For example, an application can choose whether QString is implemented as a Python type, or is automatically converted to and from a Python v2 unicode object or a Python v3 string object.
This ability allows developers to decide how to manage the transition from an older deprecated, API to a newer incompatible API.
Each API that can be selected in this way has a name and a range of version numbers. An application calls sip.setapi() to set the version number of a particular API. This call must be made before any module that implements the API is imported. Once set the version number cannot be changed. If not set then an API will use its default version.
For example the following code will disable the use of QString:

 import sip
sip.setapi('QString', 2)
from PyQt4 import QtCore
# This will raise an attribute exception because QString is only wrapped
# in version 1 of the API.
s = QtCore.QString()

 The following APIs are currently implemented:
    QDate v1, v2
    QDateTime v1, v2
    QString v1, v2
    QTextStream v1, v2
    QTime v1, v2
    QUrl v1, v2
    QVariant v1, v2

Если переключаю на первую версию API QString работает.
Можете у себя выполнить код, для проверки какая версия апи выполняется у Вас?
 import sip
test = sip.getapi('QString')
print(test)

Отредактировано MrViktor (Март 9, 2017 09:33:21)

Офлайн

#8 Март 9, 2017 09:31:19

vic57
Зарегистрирован: 2015-07-07
Сообщения: 908
Репутация: +  127  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

MrViktor
Проблема в том, что QString уже нет
таки да
я смотрю QList,QVector тоже убрали

Отредактировано vic57 (Март 9, 2017 09:31:45)

Офлайн

#9 Март 9, 2017 09:37:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

MrViktor
Сами ее читали? интересует в плане полезности как она?
Не читал, не вижу области применения PyQt



Офлайн

#10 Март 9, 2017 09:40:05

MrViktor
Зарегистрирован: 2017-03-09
Сообщения: 83
Репутация: +  8  -
Профиль   Отправить e-mail  

PyQt4 и QStringList

FishHook
не вижу области применения PyQt
А GUI на чем строите?

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version