Qt 4.8.1, Оригинальный код просто так:
connect(this->m_CodeMemoryComboBox, SIGNAL(currentIndexChanged(QString)),
this, SLOT(updateCodeMemoryFormate()));
Это действительно смущает меня, [вопрос] Могу ли я передать аргумент функции слота при использовании QObject :: connect?
Это говорит мне, что аргумент должен совпадать, но что здесь произойдет, код будет неправильным, если я уберу этот аргумент.
Документация Qt описывает это. Ищите «(На самом деле слот может иметь более короткую подпись, чем сигнал, который он получает, потому что он может игнорировать дополнительные аргументы.)» Под заголовком «Сигналы и слоты»
В принципе, вы можете подключить N
-параметр сигнала на M
слот параметра, если M <= N
и первый M
параметры совпадают по типу. Любые оставшиеся аргументы из сигнала игнорируются слотом.
QT Doc говорит,
Механизм сигналов и слотов является типобезопасным: сигнатура сигнала должна совпадать с сигнатурой принимающего слота. (На самом деле слот может иметь более короткую подпись, чем сигнал, который он получает, потому что он может игнорировать дополнительные аргументы.)