![]() |
|
|
![]()
|
|
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
Допустим есть 3 формы в приложении (а вообще больше):
1.mainwindow – главная форма, в виджеты которой грузятся разные формы… 2.form2 – дочерняя форма – загр-ся во фрейм main_frame формы mainwindow… 3.form3 – тоже загружается в mainwindow и управляет работой формы form2… Для загрузки формы (form2) в mainwindow создаю указатель на экземпляр класса form2 и в качестве параметра конструктора данного класса в качестве родителя указываю main_frame… Вопрос: а как мне работать с виджетами формы form2 из формы form3: что мне указывать в качестве параметра конструктора (т.е. родителя) при создании на форме form3 указателя на экземпляр класса form2? Какой-либо виджет формы form3 я указать не могу, так как тогда вся form2 загрузится в этот виджет на form3, что мне не надо (а надо просто иметь программный доступ к виджетам формы form2 в сигналах виджетов формы form3). Можно конечно и так поступить (загрузить form2 в form3), сделав затем данному экземпляру формы form2 hide(), но это как-то не очень хорошо…Если ничего не указывать в качестве параметра конструктора класса form2, то ничего не работает (см. экземпляр ss в архиве программы), а сделать конструктор у form2 без параметров я не могу, так как в качестве данного параметра я указываю виджет формы mainwindow, в который загружается форма form2 (см. п.2 выше)…В прилагаемом архиве программы нет form3, а есть попытка использовать указатель на экземпляр ss формы form2 без указания параметра… Подскажите программно как лучше решить обозначенную выше проблему? Присоединённый файл ( Кол-во скачиваний: 3 )
Proj5_03.rar 284,76 Kb |
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
неужели никто не знает?
помогите пожалуйста.... |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 11 Всего: 33 |
посмотрел ваш код, и нифига не понял, что вы хотите сделать. из того что вы описали, только еще больше путаешься.
опишите в двух словах, что хотите сделать? -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
подредактировал прогу - см. архив....
главная цель - хочу иметь доступ к виджетам формы form2 из формы form3 (хочу по щелчку кнопки на form3 спрятать форму form2)...form2, form3 предварительно грузятся на форму mainwindow в различные виджеты...остальное - см. мое первое сообщение в данной теме... я свою задачу решил, но это реализовано из формы mainwindow (см. в ее конструкторе connect... ), что нежелательно, так как mainwindow используется только как контейнер для отображения сразу нескольких различных форм на одном экране, а все управляющие работой приложения программные коды должны быть в соответствующих формах (их сигналах и т.п.)...подскажите программно (прямо в архиве программы) как решить сию задачку? (см. архив - я так понимаю, что из form3 надо как-то добраться до exz1 из MainWindow и через него действовать (делать ему hide), а может и не так: может как-то проще и лучше можно сделать, но кааак???) Присоединённый файл ( Кол-во скачиваний: 5 )
Proj5_03_v2.rar 394,41 Kb |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Если взять дизайнер, в котором открыт главный виджет, на нем 2 дочерних виджета, на каждом из дочерних виджетах по радиобатону. В визуальном режиме ты поключаешь сигнал clicked() одного к слоту setChecked() другого. Сохраняешь .ui форму. Собираешь программу. Появляется файл типа ui_*.cpp. Если внутрь заглянешь, то увидишь, что указатели "вяжутся" напрямую в setupUi(). Ни первый радиобатон подвязывает к себе второй, ни второй подвязывает первый в "соответствующих формах", а родитель устанавливает отношения между ними. Перекладывать родительские обязанности рожать детей, водить их в детсад, учить, кормить и т.п. на самих детей это неправильно, всем известно кто получается из беспризорников. Так что, если хочешь дать возможность одному из детей сделать "тёмную" (hide()) другому ребенку, то решать это должен родитель, в конструкторе или еще где, не важно. Он дал возможность, он также её и заберет, когда надо будет. |
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
SABROG: ммм
|
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ты правильно делал, когда вызывал connect() в конструкторе MainWindow.
|
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
пасиба за овтеты...пока все....
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |