Ограничивающее значение для int в pyqtsignal?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ограничивающее значение для int в pyqtsignal?

Сообщение Anonymous »

не дубликат, так как это включает в себя совершенно молчаливую ошибку
У меня есть сигнал, который выглядит следующим образом:

Код: Выделить всё

add_history_row_signal = QtCore.pyqtSignal(int, int)
< /code>
Первый int - это ключ для дикта, чтобы получить значение. И на самом деле этот int является идентификатором объекта данного объекта (т.е. ID (my_object) 
).
Связанный метод получает значение int ... но это неправильно, и ключ не обнаруживается в DICT. Разработчики PYQT должны что -то сделать (по крайней мере, документируйте это). < /p>
Однако, если я сделаю INT, используемый в качестве ключа меньшего размера (потеря гарантии уникальности), это работает ОК: < /p>

Код: Выделить всё

he_id_val = id(history_entry) % 10000
...
self.he_id_to_row_map[he_id_val] = [date_item, entry_item]
self.add_history_row_signal.emit(he_id_val, len(history_list))
< /code>
... эти 2 INT затем проходят OK для подключенного метода < /p>
Я мог только подумать о 2 объяснениях для этого: либо есть максимальное значение для ключа int в DICT в Python (кажется, что это не так, насколько я могу сказать), либо Pyqtsignal, кажется, вполучите < /p> Pyqtsignal, кажется, «Pyctsignal». обыскивал по этому поводу и ничего не нашел. Очевидно, что QT записывается в C ++, и это значение Max Int, по -видимому, составляет 2147483647. Типичное значение от ID (x) 
в коде Python 1715560796288, так что больше. Очевидный обходной путь - преобразование этого значения идентификатора в строку. Просто удивлялся, могу ли я избежать этого. Не в последнюю очередь как потенциальная безмолвная неудача. На самом деле ... предполагая, что вы можете создать сигнал в C ++ Qt с параметром C ++ Long , разве это не было бы безопаснее при разработке PYQT, чтобы сделать вещи так, чтобы каждый параметр (по крайней мере, в сигналах), указанный как Python Int , переведен в C ++ Long ?

Подробнее здесь: https://stackoverflow.com/questions/796 ... pyqtsignal
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»