Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [qt4] загрузка одной формы в виджет другой 
V
    Опции темы
kuvshinka
Дата 17.2.2010, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



Совсем я заблудилась в этих классах…по-мо-ги-те разобраться раз и навсегда!!!

1. создаю в Qt Creator новый gui-проект под именем Proj1
2. задаю имя класса BaseForm, базовый класс – QMainWindow
3. на форму кладу frame1, label1 (с текстом “форма1”), PushButton1…
4. сохраняю проект…
5. теперь главное - хочу создать новую ui-форму (допустим под именем form2), добавить на нее виджеты label2 (с текстом “форма2”), Button2 и выводить эту форму form2 (загружать ее) во фрейм frame1 формы baseform.ui…В cpp-шнике формы form2 я хочу писать сигналы для виджетов  (label2, Button2) данной формы.
То есть хочу сделать такой “модуль” (форма + cpp-шник+хидер), подключаемый и выводимый в один из виджетов (frame1) формы главного приложения (т.е. формы baseform, которая используется как основа (контейнер) для сбора будущих различных форм (сейчас только form2))

подскажите пож-та  всю программную технологию выполнения п.5 : 
что надо создавать дополнительно для главного приложения (меню Файл/ новый файл или проект): форму Qt designer, класс формы Qt designer, загол-ый файл С++ или что-то другое?
 «главный» проект с формой baseform – см. в прилагаемом архиве…
Я так понимаю для этого надо использовать наследование, но совсем я заблудилась что, где и кому наследовать…помогите пож-та, ооооооооочень надо!!! 
заранее спасибо всем за помощь…


Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  Proj1.rar 320,29 Kb
PM MAIL   Вверх
borisbn
Дата 17.2.2010, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Так не пробовала?
Код

#include "baseform.h"

TheMainForm::TheMainForm( QWidget * p )
: QMainForm( p )
{
    ui.setupUi( this );
    BaseForm * baseForm = new BaseForm( ui.frame1 ); // <- Здесь самое главное
    connect( baseForm, SIGNAL( сигнал ), SLOT( слот ) );
}


P.S. Я бы не наследовал простенькую форму-заготовку от QMainWindow, IMHO лучше от QWidget

P.P.S. "спасибо" за exe-шник в архиве :( у меня медленный и дорогой gprs. В след. раз отправляй только исходники, плиз

Это сообщение отредактировал(а) borisbn - 17.2.2010, 16:15


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
kuvshinka
Дата 17.2.2010, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



borisbn: извините за экзешник...не знала... 
а почему лучше наследовать от QWidget, а не от  QMainWindow? в чем принципиальная разница?
что за класс TheMainForm?
я так понимаю создается экземпляр baseForm класса  BaseForm, у которого родителем указывается фрейм frame1 данной формы....а далее?а что конкретно писать вместо "сигнал" и "слот"? напоминаю - надо во frame1 формы baseform загрузить стороннюю ui-форму form2...

p.s. у connect 4, а не 3 параметра:
bool QObject::connect ( const QObject * sender,    const char * signal, 
                                       const QObject * receiver,  const char *method)



Это сообщение отредактировал(а) kuvshinka - 17.2.2010, 20:53
PM MAIL   Вверх
kuvshinka
Дата 17.2.2010, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



ну подскажите пож-та..всю голову поломала...
вот новые мои потуги....см. прилагаемый архив

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  Proj1.rar 268,08 Kb
PM MAIL   Вверх
kuvshinka
Дата 18.2.2010, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



ну уже осталась одна-единственная ошибочка.....help me everybody... 

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Proj1.rar 281,57 Kb
PM MAIL   Вверх
Sovereign
Дата 18.2.2010, 00:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 7.11.2006

Репутация: 1
Всего: 4



расписывать не стал, там внутри архива все

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  Proj1_1.zip 3,29 Kb
PM MAIL   Вверх
kuvshinka
Дата 18.2.2010, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



Sovereign: спасибо Вам большое за помощь....завтра буду осознавать сей текст....
заодно подскажите ссылочку по поводу использования сигналов и слотов (ф-ия connect)...
PM MAIL   Вверх
Sovereign
Дата 18.2.2010, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 7.11.2006

Репутация: 1
Всего: 4



http://qtdocs.narod.ru/4.1.0/doc/html/qobject.html#connect

можно и http://doc.crossplatform.ru/qt/4.5.0/qobject.html#connect но там кое-где без перевода, а так лучше ассистанта ничего нет =)
PM MAIL   Вверх
kuvshinka
Дата 18.2.2010, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



пасиба баааальшущеее...будемс читать-врубаться....все-таки очень непривычная такая технология сигналов и слотов- в том же делфи - выбрал компонент и получи например весь список возможных обработчиков событий, а тут....вес как "в малаховку через одессу"...  ну да ладно...изучим....
PM MAIL   Вверх
borisbn
Дата 18.2.2010, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Да, я сразу не понял что надо - ерунду написал. У Sovereign всё правильно сделано.
А по поводу
Цитата(kuvshinka @  17.2.2010,  20:32 Найти цитируемый пост)
p.s. у connect 4, а не 3 параметра

connect имеет несколько форм (перегруженная ф-ция).
если 3-й параметр должен быть this (т.е. сигнал связывается со слотом из объекта, вызывающего connect), то его можно опустить

QObject::connect ( const QObject * sender, const char * signal, const char * method, Qt::ConnectionType type = Qt::AutoConnection )
Equivalent to connect(sender, signal, this, method, type).
 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
kuvshinka
Дата 18.2.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



Теперь хочу наоборот - установить connect от form2 к mainwindow (при установленном флажке в checkBox формы form2 хочу вывести произвольную строку в label1 на форме mainwindow, иначе – вывести пустую строку). Для этого надо в form2.h подключить mainwindow.h, создать экземпляр класса  mainwindow и т.д. – но почему-то уже на таком первом простом действии (один лишь #include "mainwindow.h") возникают ошибки и предупреждения…в чем теперь тут дело?
См. приложенный архив….он без экзешника….
И еще хотелось бы, чтобы при загрузке form2 ее размеры подгонялись бы под размеры фрейма frame (он на форме mainwindow), в который идет вывод формы. (то есть какого бы размера ни был бы фрейм, form2 точно должна совпадать с ним по размерам (занимать полностью пространство фрейма) ).


Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  Proj1_2.rar 221,16 Kb
PM MAIL   Вверх
kuvshinka
Дата 20.2.2010, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



ну подскажите пож-та - почему из одной офрмы к другой могу обращатсья, а наоборот (при простом подключении соответствующего хидера файла) - нет - см. архив программы из предыдущего моего сообщения данной темы....
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.