QTreeWidget에서 노드 사이의 점선 제거

1930 단어
QTreeWidget을 사용할 때는 다음 그림과 같이 기본적으로 점선이 있습니다.
 
현재 이 노드 사이의 허선을 제거해야 합니다. 두 가지 방식을 사용할 수 있습니다. 하나는 코드에 컨트롤을 추가하는 스타일이고, 다른 하나는 qtcreator에 직접 스타일을 설정하는 것입니다.
 
첫 번째: qtcreator에서 스타일 설정:
 
컨트롤을 마우스 오른쪽 버튼으로 클릭하고 change styleSheet... 메뉴를 선택한 다음 스타일 편집 인터페이스에 들어가서 다음 코드를 추가합니다.
 
QTreeView::branch {image:none;}
 
OK를 누르면 효과를 볼 수 있는데 그동안의 점선은 이미 없어졌다.
 
두 번째: 코드에 스타일을 직접 추가하는 방법:
 
코드는 다음과 같습니다.
 
treeWidget->setStyleSheet("QTreeView::branch {image:none;}");
 
여기의treeWidget는 현재 QTreeWidget 대상을 가리킨다.
 
원본 그림 붙이기:
 
 
컴파일링을 실행하면 효과를 볼 수 있습니다.
 
그런 다음 상위 레벨 노드에만 점선이 없고 하위 노드에 점선이 있는 방법을 설명합니다.
마찬가지로 원본 코드에 스타일을 설정하는 방법과 qtcreator에 스타일을 설정하는 두 가지 방법을 사용할 수 있습니다. 여기서 더 이상 군말하지 않고 설정된 파라미터를 간단하게 소개합니다.
 
코드에 다음 메서드를 추가합니다.
 
treeWidget->setRootIsDecorated(false);
 
qtcreator에서 qtreewidget 컨트롤을 누르면 오른쪽 설정 속성에서 QTreeView 바를 찾을 수 있습니다. 루트 Is Decorated 콤보 상자를 선택하지 않고 이 효과를 실현할 수 있습니다.
 
마지막으로 item의 다른 상태에서 배경색을 표시하도록 설정하는 코드를 보냅니다. 설정 방법은 다음과 같습니다.
 
소스 코드의 설정:
 
treeWidget->setStyleSheet(
                                             "QTreeView::item:hover{background-color:rgb(0,255,0,50)}"
                                   
          "QTreeView::item:selected{background-color:rgb(255,0,0,100)}"
);

, :

QTreeView::item:hover{background-color:rgb(0,255,0,50)}
QTreeView::item:selected{background-color:rgb(255,0,0,100)}


it's ok!

좋은 웹페이지 즐겨찾기