PyQt(Python+Qt)學習隨筆:QScrollArea滾動區域的scrollAreaWidgetContents、widget及setWidget等相關概念解釋

在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滾動區域詳解》。

老猿Python,跟老猿學Python!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章