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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как подключить готовую сделанную мной форму к исходнику  (Прочитано 4636 раз)
Wander
Гость
« : Октябрь 26, 2008, 22:32 »

Ребят !
Извените меня - но уж помогите.

Почитал я все что советовали - попробовал
Все получается вроде - виджеты создаются - если создаю все в текстовом редакторе.
В QT Designer - тоже вроде на начальном уровне разобрался - интерфейс строиться - все что хочу меняется (пока).

Но во всех мануалах показывают как делать формы прямо в текстовом редакторе - ну да это выходит, а вот как подключить готовую сделанную мной форму к исходнику - нигде не написано. Я бьюсь-бьюсь - ну не получается - злость берет  Злой

Ведь когда форма готова - то намного ж быстрее все идет.

Может кому-то не будет тяжело - сделайте мне небольшой исходничек с формой.ui и допустим что б я видел как делать реакцию на событие кнопки - ну там по нажатию добавить другой текст на лейбл или что-то в том роде.
Ну что я могу сказать - ну привык я к этим полноценным студиям разработки где еще и подсказочки по коду вылетают  Улыбающийся  - а тут теряюсь.

Спасибо !
 
Записан
ритт
Гость
« Ответ #1 : Октябрь 26, 2008, 22:44 »

"полноценные студии" - это делфи, что ли?
по теме: в дизайнере есть опция меню "form" -> "view code..." - чем не минимальный пример?
Записан
denka
Гость
« Ответ #2 : Октябрь 26, 2008, 22:51 »

Читай тут http://doc.trolltech.com/4.4/designer-using-a-component.html
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Октябрь 27, 2008, 00:51 »

а вот как подключить готовую сделанную мной форму к исходнику - нигде не написано. Я бьюсь-бьюсь - ну не получается - злость берет  Злой
Файлы ui преобразуются с помощью uic в С++исходник.
Который ты подключаешь к своей программе. Способов есть несколько, в асистенте все описаны. Я в основном использую множественное наследование. Для этого нужно в pro-файл добавить строчку типа:
FORMS   += myform.ui
А затем создать класс с наследованием от какого нибудь Qt'явого класса и твоей формы. Т.к. лениво мне это было делать руками сваял себе програмулину, см. её здесь


Ведь когда форма готова - то намного ж быстрее все идет.

Может кому-то не будет тяжело - сделайте мне небольшой исходничек с формой.ui и допустим что б я видел как делать реакцию на событие кнопки - ну там по нажатию добавить другой текст на лейбл или что-то в том роде.
В дизайнере можно соеденять сигналы и слоты объектов. Если даного недостаточно, то при использовании множественного наследования (см. выше) ты обращаешся в созданном классе к виджетам напрямую. Например, на форме у тебя есть кнопка которую ты назвал "mybtn" и надо установить из программы в ней текст, то делаешь так:
mybtn->setText(tr("mytext"));
« Последнее редактирование: Октябрь 27, 2008, 00:54 от lit-uriy » Записан

Юра.
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Октябрь 27, 2008, 15:09 »

Я бы посоветовал бы использовать в своих преложениях не множественное наследование (Multiple Inheritance Approach), а  Single Inheritance Approach с небольшой модификацией.

Пимер:

// *.h

Код:
namespace Ui{
    class YuorClassName;
};

class SomeClass : public SomeBaseClass
{
private:
    Ui::YuorClassName *m_ui;
};

// *.cpp

Код:
#include "ui_yourclassname.h"

SomeClass::SomeClass(QWidget *parent)
    : SomeBaseClass(parent)
{
    m_ui = new Ui::YuorClassName;
    m_ui->setupUi(this);
}

SomeClass::~SomeClass()
{
    delete m_ui;
    m_ui = 0;
}


Такой подход дает существенный выигрыш при сборке проекта, когда изменяеться какая либо UI. Это особо важно для болших проектов (проверено на собственном опыте).
« Последнее редактирование: Октябрь 27, 2008, 15:25 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Октябрь 27, 2008, 17:55 »

2 pastor, создание пространства имен Ui не нужно, в ui_***.h он уже есть
Записан

Юра.
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Октябрь 27, 2008, 17:57 »

2 pastor, создание пространства имен Ui не нужно, в ui_***.h он уже есть

А где я его создал?

Код:
namespace Ui{
    class YuorClassName;
};

Это forward declaration
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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