Russian Qt Forum
Ноябрь 25, 2024, 07:51
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
как обратиться к виджету другой формы?,
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: как обратиться к виджету другой формы?, (Прочитано 8020 раз)
sibmail
Гость
как обратиться к виджету другой формы?,
«
:
Январь 17, 2011, 17:45 »
упрощенно: у меня есть главное окно, на нем лежит textedit и кнопка, по кнопке я открываю другую форму (диалог), при этом работа идет в другом диалоге, но мне надо из этого диалога установить текст на textedit главного окна (или прочитать от туда)....
если не понятна суть - мизирный проект прикреплен
архив сюда не смог прикрепить
вот ссылка
http://disk.tom.ru/u8jc3v3/1/7cf9a/2.rar
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: как обратиться к виджету другой формы?,
«
Ответ #1 :
Январь 17, 2011, 17:53 »
Dialog::Dialog(QWidget *parent) : QDialog(parent)
{
MainWindow* mw = qobject_cast<MainWindow* >( parent );
. . .
}
Записан
Qt 5.11/4.8.7 (X11/Win)
sibmail
Гость
Re: как обратиться к виджету другой формы?,
«
Ответ #2 :
Январь 17, 2011, 18:12 »
спасибо! пошло!
Записан
sergun1604
Гость
Re: как обратиться к виджету другой формы?,
«
Ответ #3 :
Январь 18, 2011, 11:09 »
Я через сигнал-слот все решаю
Записан
sibmail
Гость
Re: как обратиться к виджету другой формы?,
«
Ответ #4 :
Февраль 03, 2011, 09:37 »
не совсем пошло ))). у меня ситуация перевести код с 3 на 4.
qt3:
главное окно:
MainFormImpl::MainFormImpl(QWidget *parent, const char *name, WFlags f):MainForm(parent,name,f)
{....}
диалог: *.h
class AcceptMessage : public AcceptMessageForm
{
Q_OBJECT
public:
AcceptMessage (QWidget *parent = 0, const char *name = 0,WFlags f = 0); //,WFlags fl = WDestructiveClose
MainFormImpl* mf;
....
}
cpp:
AcceptMessage::AcceptMessage(QWidget *parent, const char *name,WFlags f):AcceptMessageForm(parent,name,f)
{
mw = (MainFormImpl*) parent;
mw->.... и т.д. используем везде и как угодно )
....}
но в qt4 ругается на *.h
error: ISO C++ forbids declaration of 'MainFormImpl' with no type
error: expected ';' before '*' token
как еще прописать то?
MainWindow* mw = qobject_cast<MainWindow* >( parent ) помогает только в рамках конструктора, а мне еще надо бы в других функциях (слотах) использовть mw...
Записан
alexman
Гость
Re: как обратиться к виджету другой формы?,
«
Ответ #5 :
Февраль 03, 2011, 10:09 »
1. ; ставь в описании классов.
2.
Цитировать
диалог: *.h
Добавь в начале class MainFormImpl;
Записан
SASA
Гость
Re: как обратиться к виджету другой формы?,
«
Ответ #6 :
Февраль 03, 2011, 10:22 »
Про переход с 3 на 4 не знаю.
Про другой виджет.
Мне кажется, что немного неправильная архитектура. Формы, диалоги должны отображать/изменять данные. У Вас открывается диалог, который меняет какие-то данные. Данные рассылают сигнал, что данные изменились, и все формы, которые отображают эти данные, перерисовываются.
Записан
sibmail
Гость
Re: как обратиться к виджету другой формы?,
«
Ответ #7 :
Февраль 03, 2011, 10:44 »
Цитата: alexman от Февраль 03, 2011, 10:09
1. ; ставь в описании классов.
2.
Цитировать
диалог: *.h
Добавь в начале class MainFormImpl;
1. не понял где конкретно ставить
2. спасибо!! помогло !!! (сам тупанул - походу переработался...)
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...