Понял. А в случае слот/сигналов, обращение к виджетам, реализованным в ui, также по схеме dialog->ui->(object name)?
P.S.: Здесь dialog это имя главного виджета в .ui?
Допустим у нас есть MainWindow, а на нём кнопка (или пункт меню). При нажатии на кнопку вызывается диалоговое окно. На диалоговом окне есть поля ввода и кнопка Ok. Чтобы получить данные с этого диалогового окна надо в нём сделать отправку сигнала с введёнными данными (emit). А в MainWindow сделать слот для принятия данных. И соединить сигнал с диалогового окна и слот для принятия данных.
Вот как это примерно выглядит:
Создаём диалог с кнопкой и полем ввода. При нажатии на кнопку диалог отправляет сигнал (emit):
C++ (Qt)
void SettingsDialog::on_okButton_clicked()
{
QString portName = ui->portNameComboBox->currentText();
QString portSpeed = ui->portSpeedComboBox->currentText();
emit signalSetSettings( portName, portSpeed );
this->close();
}
В MainWindow создаём слот для принятия данных:
C++ (Qt)
void MainWindow::slotSetSettings( const QString &portName,
const QString &portSpeed )
{
// ... делаем что-то с данными от диалога
}
При нажатии подпункта MainWindow в меню вызываем диалог и связываем сигнал и слот, описанные выше:
C++ (Qt)
void MainWindow::on_actionSettengs_triggered()
{
SettingsDialog dialog;
dialog.setModal( true );
connect( &dialog, SIGNAL( signalSetSettings( QString,QString ) ),
this, SLOT( slotSetSettings(QString,QString ) ) );
dialog.exec();
}