Ошибка при использовании метода setPixel класса QImage, Python |
Здравствуйте, гость ( Вход | Регистрация )
Ошибка при использовании метода setPixel класса QImage, Python |
zuze |
25.3.2013, 12:56
Сообщение
#31
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
zuze |
26.3.2013, 10:17
Сообщение
#32
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот тут появилсась такая загвостка.
В функции 1 всё впорядке, а вот в функции 2 bf[0] выводит постоянно 21 и это совершенно не верно. Почему так происходит? |
|
|
lanz |
26.3.2013, 10:31
Сообщение
#33
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
bf обновляется только в первой функции.
Во второй функции используется последнее считанное в bf значение. Зачем делать два одинаковых цикла в разных местах? |
|
|
zuze |
26.3.2013, 10:34
Сообщение
#34
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
Зачем делать два одинаковых цикла в разных местах? У меня проблемы с торможениями программы и я ищу узкие места. Хотел bf использовать глобально в другой функции, но видемо это не возможно. Наверно в таких случаях надо список использовать? Сообщение отредактировал zuze - 26.3.2013, 10:38 |
|
|
lanz |
26.3.2013, 10:52
Сообщение
#35
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Это возможно, только нужно добавлять в массив.
print выполняется очень долго. Его надо убрать из внутреннего цикла при замере производительности. Сообщение отредактировал lanz - 26.3.2013, 10:52 |
|
|
zuze |
26.3.2013, 11:06
Сообщение
#36
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
print выполняется очень долго. Его надо убрать из внутреннего цикла при замере производительности. Это сомо собой, это я для проверки того, что там ерунда выходит, а так я конечно уберу. Я сделал так:
Выскочила ошибка: IndexError: list index out of range |
|
|
lanz |
26.3.2013, 11:40
Сообщение
#37
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Надо заменить i на j, поскольку мы добавляем в j-ый список. Кстати тут надо согласовать индексы потому что список заполняется с начала, а используется с конца. |
|
|
zuze |
26.3.2013, 12:52
Сообщение
#38
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
Кстати тут надо согласовать индексы потому что список заполняется с начала, а используется с конца. Я думал это надо сделать вот таким образом
Я в функции 2 при задании i в bf указал минус, то есть bf[-i][j], вроде это тогда с конца спаиска. Но это не помогло. Ошибка: IndexError: list index out of range |
|
|
lanz |
26.3.2013, 13:09
Сообщение
#39
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Ну да, заполняем 491 элемент:
А считываем 492:
Кроме того последний элемент будет -1 а не -0, а первый -492, поэтому в установке пикселей надо:
|
|
|
zuze |
26.3.2013, 13:22
Сообщение
#40
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
Я сделал так:
Ошибка: IndexError: list index out of range Сообщение отредактировал zuze - 26.3.2013, 13:23 |
|
|
Текстовая версия | Сейчас: 26.11.2024, 1:17 |