2012-10-25 2 views
1

나는 3 개의 열이있는 QTreeWidget을 가지고 있습니다. 이 검색 기능에 사용되며 나무는 $의 SEARCHTERM에 대한 결과의 히트날짜별로 정렬하기 QTreeWidget에서

  1. 결과 이름
  2. 결과 날짜
  3. 수를 보유하고 있습니다.

기본 동작은 날짜 내림차순으로 정렬하는 것입니다. 이 작업은 원래 SQL 쿼리를 통해 완료되고 이후에 트리에로드 된 이후 완벽하게 작동했습니다. 그러나 사용자가 날짜가 아닌 다른 열을 기준으로 정렬 할 수 있도록 허용하기로 결정했을 때 문제가 발생했습니다.

날짜는 mm/dd/yyyy 형식이지만 QTreeWidget은 월 및 일로 정렬하는 동안 연도를 무시합니다. 그것은 정수 같은 날짜를 다루고 싶어하는 것 같습니다. 월과 일은 정확하게 정렬되지만 연도가 서로 섞여서는 안됩니다. (2012 년 10 월 6 일, 10/06/2011, 10/05/2012 등) QTreeWidget 정렬 함수에 연도를 최우선 순위로 지정할 수있는 방법이 있습니까 (2012 년부터 모든 것이 그룹화되므로 2011 년부터 그룹화 등) 또는 해당 열의 날짜 형식을 사용하도록 알릴 수도 있습니다.

답변

3

정수로 정렬되지 않았습니다. 문자열로 정렬됩니다. 트리 뷰에 사용하는 모델은 data() 함수의 열에 대해 QDate 또는 QDateTime을 반환해야합니다.

+0

그래서 문자열 대신 QDate로 각 QTreeWidgetItem에 날짜를 추가하면 올바르게 작동해야합니까? –

+1

QDate :: FromString을 사용하여 String을 Qdate로 변환하면 작동합니다 ... 일종의. 날짜 형식은 여전히 ​​깨져 있습니다 (QDate :: DateFormat이 "MMddyyyy"인데도 날짜가 m/d/yy로 표시됩니다.) 이유는 알 수 없습니다 ... Qt doc에 따라 작동해야합니다 . –