guy*_*y16 4 python qt pyqt scrollbar pyqt5
这是一个正题,我已经阅读了许多主题,有些有所帮助(python Qt:主窗口滚动条,PyQt:将滚动条放在其中),有些根本没有(PyQt在我的主窗口中添加了滚动条),我仍然有滚动条的问题。它们不可用,是“灰色”。
这是我的代码(我正在使用PyQt5):
def setupUi(self, Interface):
Interface.setObjectName("Interface")
Interface.resize(1152, 1009)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Interface.sizePolicy().hasHeightForWidth())
Interface.setSizePolicy(sizePolicy)
Interface.setMouseTracking(False)
icon = QtGui.QIcon()
self.centralWidget = QtWidgets.QWidget(Interface)
self.centralWidget.setObjectName("centralWidget")
self.scrollArea = QtWidgets.QScrollArea(self.centralWidget)
self.scrollArea.setGeometry(QtCore.QRect(0, 0, 1131, 951))
self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollArea.setEnabled(True)
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 1112, 932))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.scrollAreaWidgetContents)
self.horizontalLayout.setObjectName("horizontalLayout")
Run Code Online (Sandbox Code Playgroud)
所以我想将滚动条放在主窗口小部件上,因此,如果用户调整主窗口的大小,则会出现滚动条,并让他上下移动以查看较小窗口小部件外部的子窗口小部件,从而允许其向右移动离开。
帮助赞赏!
示例代码有几处错误。主要问题是您没有正确使用布局,并且内容小部件未添加到滚动区域。
下面是一个固定版本(注释行都是垃圾,可以删除):
def setupUi(self, Interface):
# Interface.setObjectName("Interface")
# Interface.resize(1152, 1009)
# sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
# sizePolicy.setHorizontalStretch(0)
# sizePolicy.setVerticalStretch(0)
# sizePolicy.setHeightForWidth(Interface.sizePolicy().hasHeightForWidth())
# Interface.setSizePolicy(sizePolicy)
# Interface.setMouseTracking(False)
# icon = QtGui.QIcon()
self.centralWidget = QtWidgets.QWidget(Interface)
# self.centralWidget.setObjectName("centralWidget")
layout = QtWidgets.QVBoxLayout(self.centralWidget)
self.scrollArea = QtWidgets.QScrollArea(self.centralWidget)
# self.scrollArea.setGeometry(QtCore.QRect(0, 0, 1131, 951))
# self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
# self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
# self.scrollArea.setWidgetResizable(True)
# self.scrollArea.setObjectName("scrollArea")
# self.scrollArea.setEnabled(True)
layout.addWidget(self.scrollArea)
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 1112, 932))
# self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
layout = QtWidgets.QHBoxLayout(self.scrollAreaWidgetContents)
# self.horizontalLayout.setObjectName("horizontalLayout")
# add child widgets to this layout...
Interface.setCentralWidget(self.centralWidget)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12812 次 |
最近记录: |