1
A
回答
1
如果你想知道哪些部件是可見的,使用此功能:
def isVisibleWidget(widget):
if not widget.visibleRegion().isEmpty():
return True
return False
如果您只想檢測移動滾動必須通過使用所產生的信號:
{your QScrollArea}.verticalScrollBar()
{your QScrollArea}.horizontalScrollBar()
在該示例使用valueChanged
信號
示例:
import sys
from PyQt5.QtWidgets import QApplication, QPushButton, QScrollArea, QVBoxLayout, QWidget
class Widget(QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent=parent)
widget = QWidget()
layout = QVBoxLayout(self)
self.buttons = []
for i in range(20):
btn = QPushButton(str(i))
self.buttons.append(btn)
layout.addWidget(btn)
widget.setLayout(layout)
scroll = QScrollArea()
scroll.setWidget(widget)
vLayout = QVBoxLayout(self)
vLayout.addWidget(scroll)
self.setLayout(vLayout)
scroll.verticalScrollBar().valueChanged.connect(self.slot)
scroll.horizontalScrollBar().valueChanged.connect(self.slot)
self.show()
self.slot()
def slot(self):
visibles = []
for btn in self.buttons:
if self.isVisibleWidget(btn):
visibles.append(btn.text())
print(visibles)
def isVisibleWidget(self, widget):
if not widget.visibleRegion().isEmpty():
return True
return False
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Widget()
sys.exit(app.exec_())
輸出:
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13']
輸出:
['6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19']
相關問題
- 1. 如何在PyQT中檢測父窗口小部件?
- 2. 如何檢測機器是否在線?
- 3. 如何檢測wxpython中是否顯示小部件?
- 4. 如何檢測UA是否能夠在線顯示內容
- 5. PyQt的,小部件
- 6. 檢查小部件是否存在(Tkinter)
- 7. 如何檢測焦點是否從QWidget中的小部件轉移到外部?
- 8. PyQt - 如何檢查QDialog是否可見?
- 9. pyqt:如何刪除一個小部件?
- 10. 如何檢測用戶是否在主屏幕上觸摸設備小部件?
- 11. 如何檢測DOM元素是否部分偏離視口
- 12. PyQt - 在小部件頂部顯示小部件
- 13. 是否有可能通過其他dll繪製pyqt小部件?
- 14. 檢查tkinter小部件是否可見
- 15. PyQt:相對部件大小
- 16. PyQt小部件在多個文件
- 17. Android如何檢測是否以編程方式啓用了一個小部件?
- 18. PyQt如何獲取發件人(小部件)在closeEvent?
- 19. 如何檢查日期小部件是否爲空?
- 20. 如何檢查jQuery UI小部件是否被加載?
- 21. 如何檢查小部件值是否爲「可接受」?
- 22. 如何檢測文件是否爲音頻/視頻?
- 23. PyQt自定義小部件在c + +
- 24. 如何檢查小冊子中地圖邊界內是否存在多段線
- 25. 如何知道鼠標是否在小部件上?
- 26. 如何檢測是否有任何視頻正在播放?
- 27. 如何檢查外部類型是否是內部類型?
- 28. 檢查頭部內容是否小於尾部
- 29. 檢測是否Qt是在運行時
- 30. 檢查OSX是否在24小時內
不熟悉Python,但我會檢查當前的X和Y的位置滾動條和計算哪個區域被覆蓋使用該值。之後,您可以使用此區域來檢查組件是否在其中。可能有很多東西需要這樣做,但這也許是我會這麼做的 – geisterfurz007