Вы неправильно понимаете значение аргумента в соединении.
подпись вашего слота
OpenFileDialog(QLineEdit*, std::string);
и подпись вашего соединения -
OpenFileDialog(QLineEdit*)
, поэтому вы получаете предупреждение. Вы не вызываете функцию (так что ее можно разрешить с помощью параметра по умолчанию), вы указываете на функцию , поэтому подпись должна совпадать.
Совет:если вам не нужно использовать Qt4, используйте синтаксис подключения Qt5:
QObject::connect(file_address_button, &QPushButton::clicked, this, &SimulationRunner::OpenFileDialog);
для вашего конкретного случая:
, если вы всегда передаете file_address
в свой слот, затем просто удалите аргумент изслот и использовать его прямо в корпусе.
В противном случае, если вы используете Qt4, единственным обходным решением является создание дополнительного слота с вызовом без объекта.
Qt4 way:
private slots:
void _dummySlot(){
_OpenFileDialog(file_address);
}
QObject::connect(file_address_button , SIGNAL(clicked()), this, SLOT(_dummySlot()));
Qt5 way, используйте лямбду:
QObject::connect(file_address_button, &QPushButton::clicked, this, [this](){
_OpenFileDialog(address_name);
});