QScrollArea小部件和布局 - PySide / PyQt

时间:2014-06-12 00:53:17

标签: pyqt pyside qscrollarea

我已经阅读了关于nullege的无数例子,以及之前有关SO的主题。我在尝试在PySide UI项目中设置QScrollArea时感到非常困惑。这就是我想要实现的目标:

QWidgetQFrame充当页面上的容器。 QWidget/QFrame包含8个Pixmapped标签。 只有2个Pixmapped标签可以适应'一次在屏幕的可见部分内。 使用QScrollArea,使用水平滚动条可以看到QWidget/QFrame的整个范围。

从理论上讲,这非常简单,但我无法弄清楚QScrollAreaQWidget/QFrame的关联方式,以及我是否还需要QLayout。此时,存在水平滚动条,但滚动不可用。这就是我到目前为止所拥有的:

#Oscar Home Scroll Area - Scroll Area#
self.ScrollAreaOscarHome = QtGui.QScrollArea(self)
self.ScrollAreaOscarHome.setGeometry(QtCore.QRect(12, 180, 1000, 570))
self.ScrollAreaOscarHome.setVisible(True)
self.ScrollAreaOscarHome.setFrameShape(QtGui.QFrame.NoFrame)
self.ScrollAreaOscarHome.setObjectName("ScrollAreaOscarHome")
self.ScrollAreaOscarHome.setWidgetResizable(True)
self.ScrollAreaOscarHome.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.ScrollAreaOscarHome.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)

#Oscar Home Container Widget - Widget#
self.WidgetOscarHomeContainer = QtGui.QWidget()
self.WidgetOscarHomeContainer.setGeometry(QtCore.QRect(12, 180, 2000, 570))
self.WidgetOscarHomeContainer.setObjectName("WidgetOscarHomeContainer")

self.ScrollAreaOscarHome.setWidget(self.WidgetOscarHomeContainer)

#Oscar Home Horizontal Layout - QHBoxLayout#
self.OscarHomeHorizontalLayout = QtGui.QHBoxLayout(self.WidgetOscarHomeContainer)

我已经包含了上面的QHBoxLayout部分,因为之前我读过的示例使用的是Layout,但我不确定它是如何适应Widget的。{{I} 1}}和ScrollArea

我在这里走在正确的轨道上吗?我没有收到任何错误,ScrollArea显示为我喜欢,但ScrollArea和Widget(比ScrollArea宽得多)不是似乎完全没有联系。

非常感谢任何指导!

0 个答案:

没有答案