Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: BuRn от Декабрь 06, 2011, 21:47



Название: нубский вопрос
Отправлено: BuRn от Декабрь 06, 2011, 21:47
при определенных действиях у меня вызывается форма. в которой куча спин боксов, я тыкаю спин бокс и форма закрывается, вот у каждого спин бокса есть objectName который нужно передать в форму , из которой была вызвана форма с этими самыми спинбоксами
вот что-то типа
Код:
void MainWindow::AcceptTable()
{
    tables *table = new tables;
    table->show();
}
Соотвественно это слот, который вызывается у меня при клике на кнопку
т.е. не нужно в нем получить этот обжект нейм элемента которого выбрали в форме


Название: Re: нубский вопрос
Отправлено: kambala от Декабрь 06, 2011, 21:58
к слову, в приведенном коде присутствует утечка памяти. если будешь создавать свою таблицу через new tables(this), то утечки не будет.

если эта форма tables - наследник QDialog и может блокировать твоё главное окно, то можно её показывать через exec(), и в следующей же строке получать необходимый тебе objectName через сохранённую переменную (см. ниже). если ей нельзя блокировать главное окно, то надо создать свой сигнал с параметром типа строка в этой форме и испускать его в closeEvent() с твоим objectName (берётся из сохранённой переменной, см. ниже), а в главном окне создать слот, который соединишь с вышеописанным сигналом.

в той форме таблиц ещё надо запоминать тыкнутый спинбокс в переменной, чтоб знать какой именно тыкнули. если тычок определяется в каком-то слоте (что скорее всего), который подключён к какому-то сигналу чекбокса, то в этом слоте просто сохраняешь sender()'a.


Название: Re: нубский вопрос
Отправлено: BuRn от Декабрь 06, 2011, 22:21
да у меня слот свой на клик на спинбокс, который как раз таки берет номер спинбокса. который мне нужен. который в последствии нужно передать форме из которой я вызвал форму со спинбоксами,
Код:
tables::tables(QWidget *parent,int *table_num) :
    QWidget(parent),


Название: Re: нубский вопрос
Отправлено: kambala от Декабрь 06, 2011, 22:27
значит вот твоё решение:
надо создать свой сигнал с параметром типа строка в этой форме и испускать его в closeEvent() с твоим objectName, а в главном окне создать слот, который соединишь с вышеописанным сигналом.


Название: Re: нубский вопрос
Отправлено: BuRn от Декабрь 06, 2011, 22:32
спасибо, думал проще вариант есть, придется прибегать к этому