문제

나는 a를 사용하고있다 QTabWidget 창에 여러 문서를 렌더링하고 각 탭에 닫기 버튼을 그려고합니다. 사용 중입니다 추억 그리고 QT4, 탭 위젯은 기본 Windows 컨트롤입니다. 이것은 타당성에 영향을 줄 수 있습니다.

누구든지 QTabWidget 제어, 또는 사용자 정의 위젯을 만들어야합니까? 새로운 위젯을 만드는 것이 유일한 옵션이라면, 모든 포인터는 대단히 감사 할 것입니다. 나는 Qt를 비교적 처음으로 사용합니다.

도움이 되었습니까?

해결책

현재 주식 Qtabwidget과 함께이를 수행 할 방법은 없지만 다가오는 QT 4.5 (2009 년 3 월에 출시 될 예정)는 닫기 버튼을 추가 할 수 있습니다 수동으로 또는 a를 설정하여 탭에 QTabBar.TabsClosable 재산.

그때까지 버튼을 닫는 유일한 방법은 서브 클래스입니다. QTabWidget 또는 QTabBar 수동으로 추가하십시오 (가능하지만 사소하지는 않음).

다른 팁

QT 4.5 이후. 그냥 전화하면 setTabsClosable(true) ~에 QTabWidget, 당신은 닫기 버튼이 있지만 행동에 묶이지 않습니다.
버튼이 무언가를하려면 tabcloseRequested (int) 신호를 자신의 슬롯 중 하나에 연결해야합니다.

MainWindow::MainWindow()    
    m_tabs = new QTabWidget();
    m_tabs->setTabsClosable(true);
    connect(m_tabs, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int)));


void MainWindow::closeTab(const int& index)
{
    if (index == -1) {
        return;
    }

    QWidget* tabItem = m_tabs->widget(index);
    // Removes the tab at position index from this stack of widgets.
    // The page widget itself is not deleted.
    m_tabs->removeTab(index); 

    delete(tabItem);
    tabItem = nullptr;
}

4.5에는 기능이 있습니다

void setTabsClosable ( bool closeable )
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top