Вы можете получить доступ к диалоговому окну после его закрытия, кроме случаев, когда вызывается его деструктор. Поэтому самым простым подходом было бы добавить публичную функцию, которая будет возвращать желаемую QStringList
.
QStringList getList()
{
QStringList list;
// populate it
return list;
}
В вашем главном приложении вы должны просто соединить сигнал accepted
диалога со слотом, который обрабатывает его и получает список строк.
connect(dialog, SINGAL(accepted()), this, SLOT(dialogAccepted()));
void dialogAccepted()
{
QStringList list = dialog->getList();
// do whatever you want with it
}
Другой вариант - создать в диалоговом окне сигнал с аргументом QStringList
и выдать его перед accept
.
void onOKButtonClicked()
{
QStringList list = createList(); // Construct a QStringList
emit myStringListSignal(list);
accept();
}
Опять же, вы должны подключить этот сигнал к слоту, который обрабатывает QStringList
connect(dialog, SIGNAL(myStringListSignal(QStringList)), this, SLOT(handleDialogStringList(QStringList)));
void handleDialogStringList(QStringList list)
{
// do whatever you want with the list
}
Ваш слот кнопки ОК не должен возвращать ничего, поскольку это обрабатывается внутренне Qt
.