Russian Qt Forum
Ноябрь 27, 2024, 21:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: нубский вопрос  (Прочитано 2468 раз)
BuRn
Гость
« : Декабрь 06, 2011, 21:47 »

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

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Декабрь 06, 2011, 21:58 »

к слову, в приведенном коде присутствует утечка памяти. если будешь создавать свою таблицу через new tables(this), то утечки не будет.

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

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
BuRn
Гость
« Ответ #2 : Декабрь 06, 2011, 22:21 »

да у меня слот свой на клик на спинбокс, который как раз таки берет номер спинбокса. который мне нужен. который в последствии нужно передать форме из которой я вызвал форму со спинбоксами,
Код:
tables::tables(QWidget *parent,int *table_num) :
    QWidget(parent),
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Декабрь 06, 2011, 22:27 »

значит вот твоё решение:
надо создать свой сигнал с параметром типа строка в этой форме и испускать его в closeEvent() с твоим objectName, а в главном окне создать слот, который соединишь с вышеописанным сигналом.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
BuRn
Гость
« Ответ #4 : Декабрь 06, 2011, 22:32 »

спасибо, думал проще вариант есть, придется прибегать к этому
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.134 секунд. Запросов: 23.