문제
여러 탭이 추가 된 QT Tabwidget이 포함 된 대화 상자가 있습니다.
탭 중 하나를 숨기고 싶습니다.
_mytab->hide()
작동하지 않습니다. 다른 코드는 탭 내 위젯에 의존하기 때문에 .ui 파일에서 탭과 모든 위젯을 삭제하고 싶지 않습니다. 그러나 탭 코드를 생성하는 것은 괜찮지 만 어떻게 든 생성 된 uic_mydialog.cpp에서 inserttab이 아닙니다. UI 파일에 숨겨진 속성을 설정하는 것도 작동하지 않습니다.
QT 3.3을 사용하고 있습니다
해결책
PTABPAGE를 삭제하지 않는 QTABDIALOG :: RemovePage (QWIDGET* PTABPAGE)를 사용합니다.
_myTabDlg->removePage(_mytab);
나는 그것을 사용하고 있고 그것은 잘 작동합니다!
다른 팁
나는 같은 문제를 발견했다. 다음 접근법을 사용하고 있습니다.
이제 데이터가 있습니다.
Gentab은 내 qtabwidget의 이름입니다
tabx는 제거하려는 탭의 이름입니다.
(이것은 탭 위젯의 두 번째 탭입니다. 따라서이 탭을 참조하기 위해 "1"을 색인으로 사용합니다).
제거하고 추가 할 코드는 다음과 같습니다.
ui.genTab->removeTab(1); // removes the tab at the index 1 which is the second tab from left
ui.genTab->insertTab(1, ui.tabX, "<Name of TabX>"); // The tab is added back.
여기서는 설계 시간에 정적으로 탭을 추가 한 경우 쉽게 수행 할 수 있습니다. 탭과 관련된 객체 이름이 있으므로 UI.TABX를 사용하여 참조 할 수 있습니다. 당신이 말한 바에 따르면, 당신의 경우에 탭은 실제로 설계 시간에 정적으로 추가됩니다.
그러나 탭을 동적으로 추가하는 경우 목록의 탭을 유지 한 다음 DeletedTabs에 대한 다른 목록이 있어야 할 것입니다.
그러나 첫 번째 솔루션은 가장 효과적 일 것입니다. 도움이 되었기를 바랍니다.
-arjun