2012-12-16 2 views
2

이 내 UI 인 UI와 탭을 만들기프로그래밍

ui->tabWidget->addTab(new QWidget(), "Tab 2"); 

enter image description here

나는 새로 만든 탭은 정확한을 갖고 싶어 "채팅방"탭과 동일한 레이아웃이 있습니다. 이 작업을 수행하는 방법에 대한 조언은 훌륭합니다.

+0

먼저 메인 윈도우에'QTabWidget'을 생성해야합니다. –

+0

X.Jacobs : 업데이트 된 게시물을 확인하십시오. – Carlj901

+0

새 탭에서 레이아웃을 프로그래밍 방식으로 복제해야합니다. 첫 번째 탭을 만들려면 무엇을 하든지 똑같은 작업을 수행하십시오. –

답변

3

디자이너에서이 작업을 수행하는 가장 쉬운 방법은 ChatTab이라는 새로운 UI Form Class를 만들고 QWidget을 기반으로하는 것입니다.

MainWindow UI 양식에서 ChatTab 양식으로 대화방 위젯 및 레이아웃을 이동 (즉, 잘라내어 붙여 넣기)하지만, QTabWidget 컨테이너는 MainWindow 양식에 그대로 두십시오. 대화방을 처음 열 때 기본 창에 표시하려면 대화 상대의 첫 번째 메시지 인 QWidgetChatTab으로 승격하십시오.

모든 추가 탭과 같이 프로그래밍 방식으로 추가해야합니다 당신은 당신의 인생을 더 쉽게 만들고 싶어

ui->tabWidget->addTab(new ChatTab(), "Tab 2"); 

가 ChatTab 생성자에 멋진 물건을 추가합니다.

+0

이 메소드와 QTabWidget 메소드의 또 다른 이점은'ChatTab' 위젯을 QDockWidget, QDialog, QMainWindow 등 모든 종류의 윈도우에서 재사용 할 수 있다는 것입니다. 내부에 놓기 만하면됩니다. 래퍼. – Phlucious

1

당신은 이름 ChatWidget 등이 레이아웃의 사용자 정의 QTabWidget를 생성하고,이 같은 공장 API해야한다 :

ChatWidget * ChatWidget::creater(TabWidget * tw, ChatData * cd) { 
    ChatWidget * cw = ChatWidget.create(); 
    tw.addTab(cast<QWidget>cw, 0); 
    // some init 
    ... 
    return cw; 
} 

긴 시간이 Qt를 및 C++를 사용하지이 당신에게 힌트를 줄 수 있습니다.

0

기본 클래스로 현재 채팅방 클래스를 사용하여 그 안에 어떤 레이아웃 물건을 할;

ui->tabWidget->addTab(new chatRoom(), "Tab 3"); 

희망이 도움이 :

다음 번에 당신은 그런 짓을, 새로운 을 만들려고합니다.