Russian Qt Forum
Ноябрь 26, 2024, 14:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как использовать одну ui форму в разных классах ?  (Прочитано 4206 раз)
tem1k
Гость
« : Ноябрь 20, 2009, 06:34 »

Доброго времени суток.

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

Заранее благодарен.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #1 : Ноябрь 20, 2009, 13:47 »

1) Не совсем понятна задача - вы хотите использовать эту же форму второй раз или какой-то виджет лежащий на ней?
2) По форуму искали похожие задачи?
3) Положить *.ui файл формы в ресурсы и воспользоваться QUiLoader для его загрузки (а можно и не класть в ресурсы а прямо с диска)
4) Почему ваш второй класс не будет работать с той де формой второй раз?
Записан
tem1k
Гость
« Ответ #2 : Ноябрь 20, 2009, 16:22 »

Простите за неясность вопроса. Но мне хотелось бы использовать виджет формы в другом классе, к примеру менять текст в LineEdit из другого класса. А если еще точнее то у меня есть форма MainWindow.ui на которой имеются два виджета LineEdit и Label хотелось бы параллельно использовать эти два виджета в двух классах т.е. из одного менять значение Label, а из другого LineEdit.
« Последнее редактирование: Ноябрь 20, 2009, 16:28 от tem1k » Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #3 : Ноябрь 20, 2009, 16:47 »

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

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
tem1k
Гость
« Ответ #4 : Ноябрь 20, 2009, 20:45 »

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

Именно Улыбающийся
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #5 : Ноябрь 21, 2009, 02:07 »

Просто сделайте публичную ф-ю для доступа или изменения соотв-го контрола или вообще возвращающую указатель на этот контрол - и работайте через экземпляр MainWindow - это будет правильно ведь оно (главное окно) является хозяином этих контролов

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

а вообще это все странно как - то... непонятно почему у вас такая задача трогать элементы одного окна из другого класса, может окно само по определенным событиям должно перечитывать откуда-то информацию в свои подвиджеты?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 23.