С PyQt4, я всегда был в состоянии инициализации QBrush и QColor с None в качестве аргумента (создает не цвет и т.д.):PyQt4 4.11.4 больше не принимает QBrush (None) или QColor (None)
QBrush(None)
QColor(None)
Но после того, как я модернизировал от 4.11.3 до 4.11.4 (это небольшое обновление), я нашел это больше не принимаются:
>>> QColor(None)
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: arguments did not match any overloaded call:
QColor(Qt.GlobalColor): argument 1 has unexpected type 'NoneType'
QColor(int): too many arguments
QColor(QVariant): argument 1 has unexpected type 'NoneType'
QColor(): argument 1 has unexpected type 'NoneType'
QColor(int, int, int, int alpha=255): argument 1 has unexpected type 'NoneType'
Я пытался искать на изменения между 4.11.3 и 4.11. 4, но не может видеть никакой соответствующей информации, которая объясняет это. И я начал задаваться вопросом, правильно ли я искал.
Это вызвано изменениями в Qt? или PyQt4? или python-SIP?
Также я не понимаю, что такое базовый вызов (C++) в Qt. Это на самом деле вызов QBrush() и QColor() или он пытается сменить Python None на c null?
Спасибо, я надеюсь, что не пропустил ничего очевидного в Интернете.
«Значение None может быть указано везде, где NULL является приемлемым для базового кода C++» ([PyQt Doc] (http://pyqt.sourceforge.net/Docs/PyQt4/gotchas.html#none-and-null)). Но я понятия не имею, почему 'QBrush (None)' был действителен до и не сейчас. – Mel