Russian Qt Forum

Qt => Общие вопросы => Тема начата: tem1k от Ноябрь 20, 2009, 06:34



Название: Как использовать одну ui форму в разных классах ?
Отправлено: tem1k от Ноябрь 20, 2009, 06:34
Доброго времени суток.

Подскажите пожалуйста каким образом я могу использовать одну форму созданную в дизайнере в двух классах. Имею форму MainWindow.ui подключаю ее к первому классу MainWindow - все нормально, работает все... а как мне использовать виджет из этой формы в другом классе ? ???

Заранее благодарен.


Название: Re: Как использовать одну ui форму в разных классах ?
Отправлено: break от Ноябрь 20, 2009, 13:47
1) Не совсем понятна задача - вы хотите использовать эту же форму второй раз или какой-то виджет лежащий на ней?
2) По форуму искали похожие задачи?
3) Положить *.ui файл формы в ресурсы и воспользоваться QUiLoader для его загрузки (а можно и не класть в ресурсы а прямо с диска)
4) Почему ваш второй класс не будет работать с той де формой второй раз?


Название: Re: Как использовать одну ui форму в разных классах ?
Отправлено: tem1k от Ноябрь 20, 2009, 16:22
Простите за неясность вопроса. Но мне хотелось бы использовать виджет формы в другом классе, к примеру менять текст в LineEdit из другого класса. А если еще точнее то у меня есть форма MainWindow.ui на которой имеются два виджета LineEdit и Label хотелось бы параллельно использовать эти два виджета в двух классах т.е. из одного менять значение Label, а из другого LineEdit.


Название: Re: Как использовать одну ui форму в разных классах ?
Отправлено: panAlexey от Ноябрь 20, 2009, 16:47
Простите за неясность вопроса. Но мне хотелось бы использовать виджет формы в другом классе, к примеру менять текст в LineEdit из другого класса. А если еще точнее то у меня есть форма MainWindow.ui на которой имеются два виджета LineEdit и Label хотелось бы параллельно использовать эти два виджета в двух классах т.е. из одного менять значение Label, а из другого LineEdit.
использовать в смысле ваимодействовать с экземплярами виджетов из другого класса?


Название: Re: Как использовать одну ui форму в разных классах ?
Отправлено: tem1k от Ноябрь 20, 2009, 20:45
Простите за неясность вопроса. Но мне хотелось бы использовать виджет формы в другом классе, к примеру менять текст в LineEdit из другого класса. А если еще точнее то у меня есть форма MainWindow.ui на которой имеются два виджета LineEdit и Label хотелось бы параллельно использовать эти два виджета в двух классах т.е. из одного менять значение Label, а из другого LineEdit.
использовать в смысле ваимодействовать с экземплярами виджетов из другого класса?

Именно :)


Название: Re: Как использовать одну ui форму в разных классах ?
Отправлено: break от Ноябрь 21, 2009, 02:07
Просто сделайте публичную ф-ю для доступа или изменения соотв-го контрола или вообще возвращающую указатель на этот контрол - и работайте через экземпляр MainWindow - это будет правильно ведь оно (главное окно) является хозяином этих контролов

Код:
class CMyMainWindow : public QMainWindow
{
------///-------
QLineEdit * lineEdit();
void setLineEditText( QString sText );
QString lineEditText();
------///-------
}

а вообще это все странно как - то... непонятно почему у вас такая задача трогать элементы одного окна из другого класса, может окно само по определенным событиям должно перечитывать откуда-то информацию в свои подвиджеты?