Как правильно вызвать новую форму |
Здравствуйте, гость ( Вход | Регистрация )
Как правильно вызвать новую форму |
kharkov_max |
24.10.2011, 15:45
Сообщение
#1
|
Студент Группа: Участник Сообщений: 46 Регистрация: 5.5.2010 Пользователь №: 1693 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день.
Понимаю что вопрос уже достаточно расжеван, но до меня что то ни как не дойдет - помогите начинающему. В Qtcreator создал чистый проэкт QmainWindow c формой mainwindow.ui, на форме положил кнопку. Теперь по нажатию кнопки хочу вызвать новую форму, созданную в дизайнере - QDialog. Создал новую форму (form) QDialog, как теперь правильно ее описать и открыть из основной формы. В проэкте появился новый файл form.ui и все ... Про этот файл Qtcreator добавил в файл проэкта *.pro записи SOURCES и FORMS. Далее для меня темный лес ... Смотрел пример addressbook но там формы создаются не в дизайнере и все описывается руками. Уважаемые ГУРУ, не пошлите начинающего в документацию т.к. уже много перечитал и обгуглил. Ясно что мой вопрос прост, но все же. 1. Нужно ли для новой формы создавать руками файлы *.h и *.cpp ? 2. Как это делают правильно настоящи джедаи ? (рассматриваю вариант создания формы через дизайнер - не вручную !!!) Распишите пожалуйста по логическим шагам. Заранее спасибо за понимание и помощь. |
|
|
RazrFalcon |
24.10.2011, 15:56
Сообщение
#2
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
|
|
|
kharkov_max |
24.10.2011, 16:03
Сообщение
#3
|
Студент Группа: Участник Сообщений: 46 Регистрация: 5.5.2010 Пользователь №: 1693 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
RazrFalcon |
24.10.2011, 16:16
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
ПКМ по папке с именем проекта (в дереве проекта) - Добавить новые... - Qt - Qt Desiner Form Class (у меня так)
Далее все интуитивно. Потом хедер(.h) диалога добавляем в сорус(.cpp) главного окна и вызываем его как я писал в примере. PS: можно и просто dialog.exec(); , но я думаю вам нужно именно что-то получить из него, по этому добавил в пример QLineEdit |
|
|
kharkov_max |
24.10.2011, 16:41
Сообщение
#5
|
Студент Группа: Участник Сообщений: 46 Регистрация: 5.5.2010 Пользователь №: 1693 Спасибо сказали: 0 раз(а) Репутация: 0 |
ПКМ по папке с именем проекта (в дереве проекта) - Добавить новые... - Qt - Qt Desiner Form Class (у меня так) Далее все интуитивно. Потом хедер(.h) диалога добавляем в сорус(.cpp) главного окна и вызываем его как я писал в примере. PS: можно и просто dialog.exec(); , но я думаю вам нужно именно что-то получить из него, по этому добавил в пример QLineEdit Что так можно делать я догадывался. Просто изначально было предроложение что QTCreator будет создавать файлы для формы автоматически, с каким нить минимальным кодом. А так, как я понимаю, нужно создать отдельно форму, а потом отдельно .cpp и .h правильно подключив их к первому файлу проэкта. Получается что кроме как изменение файла проэкта *.pro, такой метод ни чем не лучше чем просто подключать уже готовые файлы .cpp и .h. Думал что я что то не правилньно делаю или настройки Qtcreator какие-то не верно указал, ведь главная форма при создании проэкта нормально создается, а вот с дополнительными получается такая вот ситуация. Ладно, буду учить дальше. Огромное спасибо за помощь. |
|
|
RazrFalcon |
24.10.2011, 16:47
Сообщение
#6
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
|
|
|
kharkov_max |
25.10.2011, 17:58
Сообщение
#7
|
Студент Группа: Участник Сообщений: 46 Регистрация: 5.5.2010 Пользователь №: 1693 Спасибо сказали: 0 раз(а) Репутация: 0 |
С созданием новой формы уже разобрался, все оказалось проще некуда. Следующий вопрос похожего характера. А как к проэкту подключить форму которая была создана через Qtcreator не как "Класс формы Qt Designer", а как "Форма Qt Designer" Дело в том что у меня уже есть форма на которую вынесено куча виджитов и т.д. Не хочется ее заново пересоздавать и переделывать, ну и ради познания хочу подключить ее к проэкту. Я прибегнул к хитрости. Начал создавать "Класс формы Qt Designer" а как файл формы указал имя своего файла, QtСreator справшивает что такой файл уже существует "перезаписать?" - я отказываюсь и ... Вроде как в проэкте появляются файлы .h и .cpp но проэкт не компилится ... Видимо нехватает каких то связей формы и класса. Новая форма создана как Qwidget. Подскажите как правильно добавить новую уже созданную форму в проэкт. К примеру форму создал 3й человек на 3м ПК. Спасибо. Сообщение отредактировал kharkov_max - 25.10.2011, 18:05 |
|
|
RazrFalcon |
25.10.2011, 18:29
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Можно вот так хитро:
Где ui_form.h, а точнее form - это имя нашей формы-виджета (QWidget). То есть: для myform.ui - надо писать ui_myform.h |
|
|
_Vitaliy_ |
25.10.2011, 18:47
Сообщение
#9
|
Студент Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: 0 |
Для топикстартера.
Есть неплохая подборка видеоуроков по Qt, а именно: VoidRealms, не пожалейте потраченного времени и трафика на скачивание, пока уроков 98 но "разжевано" как для: совсем новичка, пользуйтесь... |
|
|
RazrFalcon |
25.10.2011, 20:18
Сообщение
#10
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Видео-уроки хорошо, но маны лучше.
|
|
|
Текстовая версия | Сейчас: 25.4.2024, 10:28 |