在Designer中設計將一個lable放到滾動區域上,使用PyUIC生成代碼後,可以看到除了QScrollArea、label 標籤外,還多了個scrollAreaWidgetContents對象,並且label的父對象被設置爲了這個scrollAreaWidgetContents對象,而滾動區域則調用scrollArea.setWidget(self.scrollAreaWidgetContents)
與這個scrollAreaWidgetContents對象進行了關聯。
例如常見的生成代碼示例如下:
#生成滾動區域
self.scrollArea = QtWidgets.QScrollArea(mainWin)
self.scrollArea.setGeometry(QtCore.QRect(9, 9, 261, 211))
self.scrollArea.setObjectName("scrollArea")
#生成滾動區域的內容部署層部件
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 241, 207))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
#在內容部署層放置標籤部件
self.label = QtWidgets.QLabel(self.scrollAreaWidgetContents)
self.label.setGeometry(QtCore.QRect(9, 110, 54, 16))
self.label.setObjectName("label")
#設置滾動區域的內容部署部件爲前面生成的內容部署層部件
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
scrollAreaWidgetContents對象其實就是滾動區域上放置子部件的對象,子部件並不直接放置在QScrollArea對象上,而是放置在scrollAreaWidgetContents對象上,這個對象對應的界面範圍老猿稱其爲內容部署層。
具體相關概念請參考《PyQt(Python+Qt)學習隨筆:QScrollArea滾動區域詳解》。