2012-10-01 4 views
0

QWidget에 외부 응용 프로그램을 내장하려면 어떻게해야합니까?qwidget에서 외부 응용 프로그램 실행

QX11EmbedContainer를 사용했지만 "XEvent가 선언되지 않았습니다."오류가 발생했습니다. 내가 언급 한 코드 아래에 시도

내가 일부 외부 응용 프로그램을 (실행하려는 tabwidget 객체의 현재 탭에 추가하려고

 QX11EmbedContainer * container = new QX11EmbedContainer(this); 
    container->show(); 

    QProcess * process = new QProcess(container); 
    QString executable("\"C:\\Program Files\\Windows Media Player\\wmplayer.exe\""); 

    process->start(executable); 

    this->show(); 

컨테이너 개체 ('이'는는 QWidget 클래스 참조를 나타냅니다) 신청 1). 이 내 코드

 QTabWidget *tabWidget = new QTabWidget; 

    /* Trying to add external appllication to a tab of tabwidget object */ 
    QX11EmbedContainer * container = new QX11EmbedContainer(tabWidget->currentWidget()); 
    container->show(); 

    QProcess * process = new QProcess(container); 
    QString executable("/home/abhishek/practice/Applicaion1"); 

    process->start(executable); 
응용 프로그램 1이 실행됩니다

하지만 별도의 창입니다하지만 난 단지 (리눅스, 예를 들면) X11에서 작동 내 탭

+0

QX11EmbedContainer는 XWindows 용입니다. – drescherjm

답변

2

QX11EmbedContainer에서 실행합니다. 그 모습에서, 당신은 Windows에서 이것을하려고합니다.

Windows에서 Qt를 사용하는 데 익숙하지 않지만 동등한 기능이 ActiveQt 모듈에서 제공되는 것처럼 보입니다. 해당 프레임 워크 내에서 이와 같은 작업을 수행 할 수 있습니다.

+0

나는 Linux에서도 (RHEL 6) 동일하게 시도했지만 작동하지 않습니다. 리눅스에서 내가 준 경로는 입니다. QString 실행 파일 ("/ home/abhishek/practice/Applicaion1"); 코드를 실행하면 Application1이 현재 응용 프로그램에서 실행되지만 별도의 창에서 실행됩니다. 현재 QWidget에 임베드 되길 원합니다. – Abhishek

+0

나는 본다. 위 코드 샘플이 불완전한 것처럼 들리 겠지만 -'container' 위젯으로 무엇을합니까? 레이아웃이나 기존 위젯의 자식으로 추가 된 것처럼 보이지 않으므로 자체 위젯에 표시됩니다. – jmk

+0

컨테이너 위의 코드에서 정의한대로 tabwidget 객체의 탭에 추가하려고합니다. – Abhishek