Я застрял на следующей проблеме:
У меня есть QWidget с именем PBVars с множеством правок, которые заполняются процедурой чтения. Теперь я хочу дать пользователю возможность редактировать некоторые поля без необходимости удалять все записи. Для этого я подумал открыть новый диалог (названный EGG) и скопировать все данные в EGG. Теперь пользователь может изменять данные, нажимая «SaveValuesToGUI», и значения сохраняются обратно в PBVars. Это может быть идея.
Мне удалось прочитать все данные из PBVars -> EGG. Но я застрял в создании соединения «сигнал-слот» обратно из EGG -> PBVars.
PBVars.h:
...
EGG * egg ;
PBVars.cpp:
PBVars::PBVars(QWidget *parent) :
Tab(parent), ui(new Ui::PBVars)
{
....
egg = new EGG();
}
void PBVars::on_but_EditGeometry_clicked()
{ ...
// fill Values_from_PBVars here
egg->show();
egg->setLneEdits(Values_from_PBVars);
}
Где и как мне написать соединение.
Я думаю, что это должно быть чем-то вроде
connect( egg ???, SIGNAL(on_pb_sendValuesToPropBasic_clicked()),
this, SLOT(write_GGE_ToPBVars(qsl) ));
где qsl — Stringlist с отредактированными значениями egg.
Кто-нибудь может мне помочь, пожалуйста? Спасибо !!
Если вы хотите, чтобы ваши соединения передавали данные, вы должны иметь соответствующие параметры в сигнале и слоте:
void someSignal(int)
...
void someSlot(int i) { ...use i here... }
И фактический параметр указывается при излучении сигнала emit someSignal(someInt)
,
Других решений пока нет …