Вызов функции, когда дочернее диалоговое окно закрыто в Qt

После попытки множества комбинаций я не могу заставить Qt вызывать функцию в диалоге моего главного окна, когда другой диалог закрыт.

Я посмотрел и попробовал несколько вещей с сигналом и слотом, но безрезультатно:
QObject::connect( edit_dialog, SIGNAL( finished(int) ), this, refresh_table() );

Короче говоря, у меня есть таблица, которая отображает данные из пользовательского контейнера. Edit_dialog позволяет редактировать значения и отправлять изменения непосредственно в базу данных через набор внешних функций (они работают). Но как только этот диалог будет закрыт, я бы хотел перезагрузить таблицу с обновленными данными из контейнера, который извлекает их из базы данных.

Db-> Container-> GUI таблица

Я понимаю, что в Qt есть нативные библиотеки для чтения / записи в БД, но это не подходит для моих целей. Мне нужен способ автоматического вызова refresh_table() функция, которую я пытался вставить в «публичные слоты» без особого успеха.

0

Решение

Вы действительно должны подключить функцию обновления таблицы к SLOT( )

connect( edit_dialog, SIGNAL( finished(int) ), this, SLOT( refresh_table() ) );

Кроме этого, кажется, нет ничего плохого в вашем подходе.

Вы также можете создать свой собственный сигнал и подключить его к функции refresh_table (), используя, например, событие нажатия кнопки «ОК», «Отмена» в этом диалоговом окне и вызов

emit ownSignal( );

в этом.

0

Другие решения


По вопросам рекламы [email protected]