2012-09-25 2 views
-1

와 열 너비를 설정 QColumnView,하지만 난 설명서 또는 인터넷에서 필요한 정보를 찾을 수 없습니다 : 나는 매우 구현PyQt4 초보자는 : 자동으로 나는 QT4 초보자 해요 사용자 정의 모델

을 DisplayRole, ToolTipRole 및 DecorationRole 입력에 응답하는 data() 메서드가있는 간단한 데이터 모델입니다. headerData() 메서드를 구현하지 않았습니다 (그러나 아래 나열된대로 테스트했습니다).

QColumnView에서 모델을 사용할 때 열의 크기는 고정되어 있습니다. 내 데이터 모델의 다양한 노드의 너비가 상당히 다양하므로 QColumnView가 data() 메서드에서 반환 된 데이터에 따라 열 너비를 자동으로 설정하는 방법을 찾고 있습니다.

다른 종류의보기에서 사용할 수있는 "setResizeMode()"메서드를 찾을 수 없습니다.

  text = str(node.display_name()) 
      value = QtCore.QSize(len(text)*10,20) 

가 이상하게 높이를 조정해야 할 것 같다,하지만 열 너비는 여전히 일정 :이 같은 뭔가 SizeHintRole의 입력 역할과 데이터로부터 QSize을()() 반환했습니다.

나는이 닮은 headerData 방법을 구현하는 시도 :

def headerData(self, index, orientation, role) : 
    ret = QtGui.QHeaderView() 
    ret.setResizeMode(QtGui.QtHeaderView.ResizeToContents) 
    return ret 

하지만 그건 아무런 영향을 미치지 않습니다를; 머리글보기를 조작하고 다른 방식으로 설정해야한다고 확신하지만 그게 무엇인지 알아내는 데 어려움이 있습니다.

누가 올바른 방향으로 초보자를 가르 칠 수 있습니까? 감사합니다. .

답변

0

너비를 재 배열하려면 setColumnWidths 메서드를 호출하면됩니다. 예를 들어, 모델 신호를 이러한 슬롯에 연결하려고하면 완료됩니다. 슬롯은 모델에서 실제 너비를 계산하고 setColumnWidths에 대한 목록을 준비 할 수 있습니다.

+0

귀하의 설명을 완전히 이해하고 있는지 잘 모르겠습니다. 한 줄 또는 두 줄의 코드를 줄 수 있습니까? setColumnWidths() 메서드를 알고 있지만 해당 메서드를 제공 할 수있는 열에 "딱 맞는"계산 방법을 알지 못합니다. 감사. –

관련 문제