QTabWidget을 추가 한 애플리케이션이 있습니다. 탭을 닫을 수 있습니다. 새 탭을 추가 할 때 탭이 이미 추가 된 경우 새 탭이 추가되어 복제됩니다. 이 중복을 피하고 싶습니다. 탭이 이미 열린 경우 해당 탭을 활성화하고 다시 열지 않습니다. 도움을 받으실 수 있습니다. 감사QTabWidget에서 중복 탭 피하기
0
A
답변
1
사용 tabText (INT 지수) 이미 인덱스의 단지 setCurrentIndex 존재하는 경우, 새로운 탭 addTab (는 QWidget * 페이지, const를 QString & 라벨)를 추가하기 전에 각 탭의 식별자를 얻고 레이블 텍스트를 비교하기 또는 새 탭을 추가하십시오.
2
Prakash의 답을 덧붙이려면 탭 제목이 탭 내용의 올바른 식별자가 아닐 수 있습니다 (물론 이것은 상황에 따라 다릅니다). 예를 들어, 현재 디렉토리가 탭의 제목 인 파일 관리자를 가질 수 있지만 파일 시스템 전체에 동일한 이름을 가진 다른 디렉토리가있을 수 있습니다.
Qt를 사용하면 동적 속성을 위젯에 설정할 수 있으므로 (QObject::setProperty 참조) 새 탭을 만들 때마다 (예 : 파일 관리자) 다음과 같은 작업을 수행 할 수 있습니다 주어진 디렉토리 인 경우 the_full_path
는 고유 식별자 것
widget = ...
widget->setProperty("tab_dir_fullpath", the_full_path);
tabWidget->addWidget(widget, directory_name);
(이 예제는 현재 디렉토리의 전체 절대 경로) 사용자에게 표시 만되지 않습니다, 당신은 나중에 볼 수 있습니다 이미 열려있어. 새 탭을 열 때
다음
, 동일한 전체 경로가 이미 열려 있는지 여부를 확인해야합니다 :
for (int k = 0; k < tabWidget->count(); ++k) {
if (tabWidget->widget(k)->property("tab_dir_fullpath").toString() == the_full_path_to_open) {
tabWidget->setCurrentIndex(k);
return;
}
}
... // open new tab, as in the previous snippet.
0
을 또한 매우 좋은 일을 더 적절한 방법이다 property 대신) setTabData를 (사용 .
관련 문제
- 1. 피하기 중복
- 2. PyQt4 : QTabWidget에서 탭 막대의 크기를 설정하십시오.
- 3. QTabWidget에서 탭의 위젯에 액세스
- 4. QTabWidget에서 위젯 변경하기
- 5. QTabWidget에서 공용 컨트롤을 사용하는 방법
- 6. PLSQL 피하기 코드 중복
- 7. 중복 추가 피하기
- 8. 중복 된 항목 피하기
- 9. 연결 목록에서 중복 피하기
- 10. 컨트롤의 중복 패널 피하기?
- 11. 레이아웃 중복 피하기
- 12. MongoDB에서 중복 데이터 피하기
- 13. SVN 중복 코드 피하기
- 14. OnSharedPreferenceChangeListener에서 코드 중복 피하기
- 15. factory_boy 공장에서 중복 피하기
- 16. 중복 데이터 피하기 PostgreSQL
- 17. 중복 항목 피하기 Python
- 18. QTabWidget에서 두 탭 사이에 공백을 삽입하는 방법은 무엇입니까?
- 19. NHibernate 중복 된 항목을 피하기
- 20. 중복 레코드 피하기 (SAP ABAP)
- 21. SQL 쿼리에서 중복 행 피하기
- 22. d3.js에서 중복/얽힘 피하기
- 23. 중복 코드를 피하기 위해 어셈블리
- 24. 데이터베이스 테이블에 중복 주소 피하기
- 25. 테이블에서 중복 레코드 피하기 asp.net
- 26. 상속을 사용하여 코드 중복 피하기
- 27. 동적 URL로 중복 콘텐츠 피하기
- 28. PHP에서 중복 객체 만들기 피하기
- 29. 클래스 디자인 - 중복 코드 피하기
- 30. 자동 날짜 중복 탭
환영합니다. 환호! – Balu
나는 그것을했다. 위한 (;)은 (ⅰ 카운트, I = 0을 int로 난 ++) { 경우 (항목 -> 문자() == tabWidget-> tabText (I)) { tabWidget-> setCurrentIndex (I); 반환; } } –
@noor 건배 ... 해결되면 답변했습니다. – Balu