Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Andrew Vladoff от Октябрь 29, 2013, 12:32



Название: Приложение внутри формы
Отправлено: Andrew Vladoff от Октябрь 29, 2013, 12:32
Есть два приложения, написанные на Qt. Как разместить одно внутри виджета на втором? Система Windows.


Название: Re: Приложение внутри формы
Отправлено: mutineer от Октябрь 29, 2013, 12:36
Приложение разместить или его окно?


Название: Re: Приложение внутри формы
Отправлено: Andrew Vladoff от Октябрь 29, 2013, 13:01
Приложение встроить в виджет. Чтобы можно было управлять им, нажимать на кнопки и т.д.


Название: Re: Приложение внутри формы
Отправлено: mutineer от Октябрь 29, 2013, 13:03
Что значит "приложение встроить"? Я понимаю что значит "встроить окно приложения" и на винде это вроде бы можно сделать при помощи OLE или ActiveX. А вот что значит "встроить приложение" совсем непонятно


Название: Re: Приложение внутри формы
Отправлено: Andrew Vladoff от Октябрь 29, 2013, 13:13
Встроить окно приложения. В линуксе есть для этого QX11EmbedContainer. Но под виндовс, как я понял, это не работает.


Название: Re: Приложение внутри формы
Отправлено: mutineer от Октябрь 29, 2013, 13:14
Это работает только под Х11


Название: Re: Приложение внутри формы
Отправлено: Fregloin от Октябрь 29, 2013, 13:36
ActiveX


Название: Re: Приложение внутри формы
Отправлено: Maestro от Октябрь 30, 2013, 02:05
В одном из проектов
1. "Добавить существующие файлы..."
2. Выбрать нужные *.h, *.cpp
3а. Если интерфейс делаете в Main() руками, то просто
Код:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    OtherWidget * ow = new OtherWidget (&w);
    w.show();
    return a.exec();
}
3b. Если в Designer то
-  бросаете виджет,
-  "Преобразовать в...",
-  Имя преобразованного класса OtherWidget
-  Заголовочный файл OtherWidget.h
-  Добавить
-  Преобразовать
Теперь ваш брошенный виджет promotion to все другое приложение OtherWidget
Это если все делалось в QWidget-ах.Если в QWindows то немного сложнее но суть та же.
И не забыть обинклюдить.


Название: Re: Приложение внутри формы
Отправлено: Andrew Vladoff от Октябрь 30, 2013, 21:46
В одном из проектов
1. "Добавить существующие файлы..."
2. Выбрать нужные *.h, *.cpp
3а. Если интерфейс делаете в Main() руками, то просто
Код:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    OtherWidget * ow = new OtherWidget (&w);
    w.show();
    return a.exec();
}
3b. Если в Designer то
-  бросаете виджет,
-  "Преобразовать в...",
-  Имя преобразованного класса OtherWidget
-  Заголовочный файл OtherWidget.h
-  Добавить
-  Преобразовать
Теперь ваш брошенный виджет promotion to все другое приложение OtherWidget
Это если все делалось в QWidget-ах.Если в QWindows то немного сложнее но суть та же.
И не забыть обинклюдить.


Проблема в том, что исходники есть только одной программы.


Название: Re: Приложение внутри формы
Отправлено: kambala от Октябрь 31, 2013, 00:19
что мешает просто запустить второе приложение?


Название: Re: Приложение внутри формы
Отправлено: Andrew Vladoff от Ноябрь 01, 2013, 14:20
что мешает просто запустить второе приложение?
В принципе ничего, но захотелось интегрировать одно в другое.


Название: Re: Приложение внутри формы
Отправлено: mutineer от Ноябрь 01, 2013, 14:21
Если сорцов второго приложения нет и оно само по себе не дает ActiveX, то никак


Название: Re: Приложение внутри формы
Отправлено: merke от Ноябрь 18, 2013, 17:31
Тут всё просто, мутишь из встраиваемого приложения библиотеку, далее передаешь в главное приложение указатель на окно и отображаешь его как виджет и вуаля!