Jak ukryć paski przewijania w trybie QScrollArea
? Obecnie używam metody hide()
na paskach przewijania zwróconych przez QScrollArea::horizontalScrollBar()
i QScrollArea::verticalScrollBar()
, ale miejsce zarezerwowane dla pasków przewijania nadal pozostaje. Oczywiście wygląda to bardzo brzydko i nie jest wydajne. Jeśli całkowicie usunę paski przewijania, nie będzie już można łatwo przewinąć do określonego punktu przy użyciu QScrollBar::setValue()
.Jak ukryć pasek przewijania w QScrollArea?
6
A
Odpowiedz
14
użyć tego kodu:
QAbstractScrollArea::setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff)
QAbstractScrollArea::setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff)
1
Ten fragment kodu może wykonać zadanie:
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
verticalScrollBar()->hide();
verticalScrollBar()->resize(0, 0);
1
Od Qt documents dla scrollContentsBy()
:
Wywołanie tej funkcji w celu przewijania programowo jest błędem, użyj zamiast tego pasków przewijania (np. bezpośrednio wywołując QScrollBar :: setValue()).
14
Można go ukryć za pomocą arkusza stylów. Użyj height:0px;
, aby ukryć poziomy pasek przewijania i width=0px;
, aby ukryć pionowy pasek przewijania. tak:
horizontalScrollBar()->setStyleSheet("QScrollBar {height:0px;}");
verticalScrollBar()->setStyleSheet("QScrollBar {width:0px;}");
i voila .no paski przewijania, i nadal można manipulować nimi za pomocą setValue()
!.
I tak, myślałem przez 3 lata odpowiedzi. Więc mogę wreszcie kupić sobie przekąski.
Powiązane problemy
- 1. Jak ukryć pasek przewijania UICollectionView
- 2. iPhone - Czy można ukryć natywny pasek przewijania w interfejsie UIWebView?
- 3. Jak ukryć pasek akcji/pasek narzędzi podczas przewijania w dół w widoku WWW
- 4. Jak QLineEdit poszerzyć wewnątrz QScrollArea
- 5. Czy można ukryć pasek przewijania na elemencie HTML textarea?
- 6. Pasek przewijania firefox ukryty
- 7. Jak ukryć pasek stanu w Androidzie 4
- 8. Jak ukryć pasek postępu w systemie Android?
- 9. Jak ukryć pasek skrótów w iOS9
- 10. Netbeans - Jak ukryć pionowy pasek w/kolory?
- 11. Jak ukryć pasek boczny w bootstrapie domyślnie?
- 12. Ukryj pasek przewijania w przeglądarce Firefox
- 13. Pasek przewijania w przeglądarce stylu
- 14. Pasek przewijania na etykiecie
- 15. Ukryj pasek przewijania HorizontalScrollView
- 16. Ukryj pasek narzędziAndroid podczas przewijania listview
- 17. UITableView Niestandardowy pasek przewijania
- 18. jqGrid poziomy pasek przewijania
- 19. html wybierz pasek przewijania
- 20. Jak wyłączyć pasek przewijania w ScrolledForm?
- 21. Jak wyświetlić pasek przewijania Zawsze w UICollectionView
- 22. Jak utworzyć pasek przewijania w QtQuick 2.0?
- 23. Wyłącz Pasek przewijania
- 24. Pasek przewijania CheckBoxList
- 25. Pasek przewijania Textarea
- 26. jqGrid pionowy pasek przewijania
- 27. Wyłącz pasek przewijania przeglądarki WebFrowser WPF
- 28. iOS TabbarViewController ukryć pasek kart
- 29. Jak ukryć menu/pasek narzędzi gvim?
- 30. Jak ukryć pasek widoku kodu VS?
Jeśli zrobię to w ten sposób, nie mogę już przewijać do określonego punktu przy użyciu QScrollBar :: setValue() (ponieważ paski przewijania nie istnieją) – pafcu
Jeśli potrzebujesz paska przewijania, kiedy jest to konieczne, użyj zasad: Qt :: ScrollBarAsNeeded. Jeśli chcesz przewinąć zawartość programową, użyj QAbstractScrollArea :: scrollContentsBy (int dx, int dy) –
[Apparenly] (http://doc.qt.io/qt-5/qabstractscrollarea.html#scrollContentsBy) powinieneś zadzwonić do paska przewijania 'setValue()' zamiast 'scrollContentsBy()'. – Schollii