std::unique_ptr<SomeConnection>FmAutoriz::exec() { bool b = QDialog::exec(); if (b) { return std::move(this->connection); // connection — поле FmAutoriz. // Такой же unique_ptr, в обработчиках кнопок пытаемся создать соединение. } else { return nullptr; } }
Так что сделайте невизуальный объект «соединение» и протащите в exec. Ну или создайте в exec.
query.prepare("INSERT INTO 'ships' ('n_sudopot', 'ship_n', 'flag','pr_ship','sost_ship','pr_sost','sudovlad',"
"'gruz_pass','tonn_ball','osadka_sm','p_ot','mestopolozh1','data_vih_p_ot','p_nazn',"
"'mestopolozh2','data_prib_p_nazn','data_otmemtki_lin_bass','bass_n','dispetcher') "
"VALUES (:c1, :c2, :c3,:c4,:c5,:c6,:c7,:c8,:c9,:c10,:c11,:c12,:c13,:c14,:c15,:c16,:c17,:c18,:c19)");