Russian Qt Forum
Июнь 15, 2024, 21:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Другое приложение как окошко в MDI программе  (Прочитано 7746 раз)
IUnknown
Гость
« : Июнь 22, 2005, 15:04 »

У меня есть MDI приложение и мне нужно что-бы другое приложение было запущено прямо в нем (как одно из окон документов). Кто подскажет как это организовать?
Записан
Sergeich
Гость
« Ответ #1 : Июнь 22, 2005, 16:20 »

Если это винда, попробуй использовать QWinHost из Qt/MFC Migration Framework ( часть Qt Solutions ), дока здесь http://doc.trolltech.com/solutions/qtwinmigrate/qwinhost.html, скачать можешь здесь http://hardclub.donntu.edu.ua/projects/qt/components/qtsol.htm
Записан
IUnknown
Гость
« Ответ #2 : Июнь 22, 2005, 17:17 »

Это не винда. Мы используем FreeBSD.
Записан
Sergeich
Гость
« Ответ #3 : Июнь 22, 2005, 17:29 »

Тады юзай XEmbed из Qt Solutions
Записан
Sergeich
Гость
« Ответ #4 : Июнь 22, 2005, 19:14 »

Это можно сделать через QtXEmbedContainer, установи себе XEmbed, там в каталоге examples/swallow есть примерчик как это сделать. Тока есть одна проблема - надо знать WId окна. В принципе если все приложения, запускаемые в данной системе написаны вами, она решается - каждый раз при создании окна надо будет передавать WId MDI-приложению ( WId можно получить через QWidget::winId() ).
Записан
IUnknown
Гость
« Ответ #5 : Июнь 22, 2005, 20:02 »

Тоесть мне нужно будет в приложениях писать дополнительный код для того что бы передать информацию приложению которое его запускает?! А без этого никак нельзя?
Записан
IUnknown
Гость
« Ответ #6 : Июнь 22, 2005, 21:32 »

Так как мне получать Wid запускаемого приложения? Есть команда типа exec() которая бы возращала бы еще и Wid запущеного приложения. А как его получает xwininfo?
Записан
Sergeich
Гость
« Ответ #7 : Июнь 23, 2005, 15:18 »

Цитата: "IUnknown"
Тоесть мне нужно будет в приложениях писать дополнительный код для того что бы передать информацию приложению которое его запускает?! А без этого никак нельзя?

В принципе можно, но нежательно. Ты можешь модифицировать исходный код Qt и добавить передачу Wid в конструктор QWidget'а, но как сам понимаешь решение довольно кривое.
Цитата: "IUnknown"
Так как мне получать Wid запускаемого приложения? Есть команда типа exec() которая бы возращала бы еще и Wid запущеного приложения. А как его получает xwininfo?

Во-первых, WId относится к окну, а не к процессу, процесс может иметь несколько окон, и у каждого будут свой уникальный WId. Во-вторых о такой команде типа ехес() я ничего не слышал, и сильно сомневаюсь в ее существовании. В третьих, в XLib должна быть какая-то ф-ция, к-ая возвращает окно, закрывающее данную точку экрана, ей и пользуется xwininfo.
Записан
IUnknown
Гость
« Ответ #8 : Июнь 25, 2005, 01:03 »

$FreeBSD: src/include/unistd.h,v 1.73 2004/02/23 04:51:07 ache Exp $
...
int    execl(const char *, const char *, ...);
int    execle(const char *, const char *, ...);
int    execlp(const char *, const char *, ...);
int    execv(const char *, char * const *);
int    execve(const char *, char * const *, char * const *);
int    execvp(const char *, char * const *);
...

Значит мне это не подходит. А где можно достать информацию по написанию оконных менеджеров?
Записан
Hellenna
Гость
« Ответ #9 : Июнь 27, 2005, 11:02 »

попробуй здесь почитать, может поможет
http://www.linux.org.ru/view-message.jsp?msgid=274847
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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