我在QFrame
上顯示多個QLabels
,放入QScrollArea
。如何找出QScrollArea的子部件是否可見?
我能告訴QScrollArea
使可見QLabels
的任何一個,但我似乎無法找到一個方法來確定子窗口小部件當前是否可見。我期望像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_()
完美!謝謝 :) – Benjamin