После попытки множества комбинаций я не могу заставить Qt вызывать функцию в диалоге моего главного окна, когда другой диалог закрыт.
Я посмотрел и попробовал несколько вещей с сигналом и слотом, но безрезультатно:
QObject::connect( edit_dialog, SIGNAL( finished(int) ), this, refresh_table() );
Короче говоря, у меня есть таблица, которая отображает данные из пользовательского контейнера. Edit_dialog позволяет редактировать значения и отправлять изменения непосредственно в базу данных через набор внешних функций (они работают). Но как только этот диалог будет закрыт, я бы хотел перезагрузить таблицу с обновленными данными из контейнера, который извлекает их из базы данных.
Db-> Container-> GUI таблица
Я понимаю, что в Qt есть нативные библиотеки для чтения / записи в БД, но это не подходит для моих целей. Мне нужен способ автоматического вызова refresh_table()
функция, которую я пытался вставить в «публичные слоты» без особого успеха.
Вы действительно должны подключить функцию обновления таблицы к SLOT( )
connect( edit_dialog, SIGNAL( finished(int) ), this, SLOT( refresh_table() ) );
Кроме этого, кажется, нет ничего плохого в вашем подходе.
Вы также можете создать свой собственный сигнал и подключить его к функции refresh_table (), используя, например, событие нажатия кнопки «ОК», «Отмена» в этом диалоговом окне и вызов
emit ownSignal( );
в этом.