我QLabels
在 a上显示多个QFrame
,放入 aQScrollArea
中。
我可以告诉QScrollArea
用 使任何QLabels
可见QScrollArea.ensureWidgetVisible(QLabel)
,但我似乎找不到一种方法来确定子小部件当前是否可见。我会期待类似的东西QScrollArea.isWidgetVisible(QWidget)
。
我尝试使用孩子自己的方法,即,QLabel.isVisible()
但无论 是否QLabel
可见QScrollArea
,它总是返回True
(参见下面的示例)。有什么办法解决这个问题?
#!/usr/bin/env python
import sys
from PyQt4 import QtGui, QtCore
application = QtGui.QApplication(sys.argv)
class Area(QtGui.QScrollArea):
def __init__(self, child):
super(Area, self).__init__()
self.child = child
self.setWidget(self.child)
self.setFixedSize(100, 100)
class MainWidget(QtGui.QFrame):
def __init__(self, parent=None):
QtGui.QFrame.__init__(self, parent)
self.layout = QtGui.QVBoxLayout()
n = 1
while n != 10:
label = QtGui.QLabel('<h1>'+str(n)+'</h1>')
self.layout.addWidget(label)
n += 1
self.setLayout(self.layout)
def wheelEvent(self, event):
print "Wheel Event:"
for child in self.children()[1:]:
print child.isVisible()
event.ignore()
mainwidget = MainWidget()
area = Area(mainwidget)
area.show()
application.exec_()