문제

여러 탭이 추가 된 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

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