Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: smartchecker от Май 18, 2012, 12:13



Название: QDialog доступ у элементам ui после завершения диалога. Как?
Отправлено: smartchecker от Май 18, 2012, 12:13
Создаётся диалог, на котором есть некоторое кол-во LineEdit'ов
Код
C++ (Qt)
   AuthorAddDialog *pAuthorAddDialog = new AuthorAddDialog(this);
 
   if (pAuthorAddDialog->exec() == QDialog::Accepted) {
       // вот здесь хочу достать эти LineEdit'ы
       qDebug() << pAuthorAddDialog->ui->fNameLineEdit->text();
   }
 
   delete pAuthorAddDialog;
 
на строчку с qDebug() ругается при компиляции.
Как?


Название: Re: QDialog доступ у элементам ui после завершения диалога. Как?
Отправлено: GreatSnake от Май 18, 2012, 12:16
Мы не такие smart-овые как ты, чтобы знать что такое AuthorAddDialog?


Название: Re: QDialog доступ у элементам ui после завершения диалога. Как?
Отправлено: madRoger от Май 18, 2012, 12:18
ui в диалоге лежит в секции private и использовать его вне диалога нельзя

Либо сделать его public (не рекомендую), либо в переопределенном методе accept диалога public переменной присваивать ui->fNameLineEdit->text() и обращаться к этой переменной.


Название: Re: QDialog доступ у элементам ui после завершения диалога. Как?
Отправлено: mutineer от Май 18, 2012, 12:19
на строчку с qDebug() ругается при компиляции.
Как?

Если ты диалог генерировал через дизайнер и ui это сгенерированный им член класса, то он находится в protected/private секции. Выводы делай соответствующие


Название: Re: QDialog доступ у элементам ui после завершения диалога. Как?
Отправлено: smartchecker от Май 18, 2012, 12:45
Да, всё осознал.