Найти - Пользователи
Полная версия: странность PyQt
Начало » GUI » странность PyQt
1
m00nk
Вот протокол:

m00nk@m00nk-desktop:~$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyQt4.QtCore import *
>>> s = QStringList()
>>> s.append('aaaa')
>>> s.append('bbbb')
>>> s.append('cccc')
>>> s.append('dddd')
>>> s.append('eeee')
>>> s.append('ffff')
>>> s.append('gggg')
>>> for i in xrange(0, s.count()-1): s.takeAt(i)
...
PyQt4.QtCore.QString(u'aaaa')
PyQt4.QtCore.QString(u'cccc')
PyQt4.QtCore.QString(u'eeee')
PyQt4.QtCore.QString(u'gggg')
Ошибка сегментирования
m00nk@m00nk-desktop:~$
Вопрос: кто дурак? :(
truporez
takeAt, он удаляет строку из списка по индексу и возвращает ее. в результате индекс выходит за границу.

правильнее так:
while s:
print s.takeAt(0)
Андрей Светлов
не нужно менять объект, по которому вы итерируетесь.
Иногда Питон подобную шутку прощает - а часто и бьет больно.
m00nk
takeAt, он удаляет строку из списка
Странное название. Если бы это было pop или shift, то можно было бы догадаться, а так я себе весь мозг сломал :(

не нужно менять объект, по которому вы итерируетесь.
От, блин! Кто ж мог знать, что он изменяется… :(

Спасибо за помощь.
PooH
m00nk
От, блин! Кто ж мог знать, что он изменяется… :(
А документацию читать вам убеждения не позволяют?
m00nk
Прикол в том, что я читал ту документацию, которая автоматически устанавливается на машину вместе с PyQt, а там описание многих методов сводится к простому перечислению параметров… :(

За ссылочку спасибо.
pasaranax
m00nk
Прикол в том, что я читал ту документацию, которая автоматически устанавливается на машину вместе с PyQt, а там описание многих методов сводится к простому перечислению параметров… sad
в таких случаях надо читать описание родительского класса
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