1
저는 Python 3.5 및 PyQt5로 프로그램을 작성하고 있습니다. QTreeWidget에 항목 목록이 있습니다. 스크롤바를 숨기고 세로 방향으로 터치 스크롤을 만들고 싶습니다.제스처로 QTreeWidget 스크롤
self.category_tree = QTreeWidget(self.framemain)
self.category_tree.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.category_tree.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.category_tree.setGeometry(QRect(630, 90, 161, 381))
self.category_tree.setLayoutDirection(Qt.RightToLeft)
self.category_tree.setLocale(QLocale(QLocale.Persian, QLocale.Iran))
self.category_tree.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.category_tree.setUniformRowHeights(False)
self.category_tree.setColumnCount(1)
self.category_tree.setObjectName("category_tree")
self.category_tree.headerItem().setText(0, "1")
self.category_tree.setFrameShape(QFrame.NoFrame)
self.category_tree.header().setVisible(False)
self.category_tree.header().setSortIndicatorShown(False)
self.category_tree.setFocusPolicy(Qt.NoFocus)
self.category_tree.verticalScrollBar().setSingleStep(25)
def checkscroll(self,startx,endx):
if (startx - endx) >= 25:
#swipe from right to left
self.category_tree.verticalScrollBar().setSliderPosition(self.category_tree.verticalScrollBar().sliderPosition()+(25))
elif (startx - endx) <= -25:
self.category_tree.verticalScrollBar().setSliderPosition(self.category_tree.verticalScrollBar().sliderPosition()-abs(25))
문제는 내가 QTreeWidget에 슬쩍 때 그것이보기의 끝 또는 시작으로 이동하고 일반적으로 스크롤되지 않습니다 스크롤 할 것입니다 : 이것은 내 코드입니다.
안녕하세요, 여전히 차이가되지 않습니다 갑자기 QScroller를 사용하면 목록의 끝에 도달하면 위젯 자체를 드래그하는 또 다른 문제가 발생하고 매우 나쁜보기를 만듭니다. – Nimda
@ 님다. 나는'QScroller '가 당신이 필요로하는 것이라는 것을 확신합니다. 'Qt.TouchGesture' 대신'Qt.LeftMouseButtonGesture'를 시도해 볼 수 있습니까? – ekhumoro
@ 님빠. "QScroller"의 유무에 관계없이 시도해 볼 또 다른 대답은 업데이트 된 답변을 참조하십시오. – ekhumoro