<p>滚动条将变灰,因为您通过将滚动条策略设置为<code>Qt.ScrollBarAlwaysOn</code>使其始终可见,但实际上没有要滚动的内容,因此它们被禁用。如果希望滚动条仅在需要时出现,则需要使用<code>Qt.ScrollBarAsNeeded</code>。</p>
<p>没有要滚动的内容,因为<code>QHBoxLayout</code>中只有一个小部件(请参见<code>self.scrollAreaWidgetContents</code>)。另外,如果此方法是从<code>QMainWindow</code>执行的,则在设置中心小部件时也会出错:<code>self.centralWidget</code>是检索中心小部件的方法。它之所以起作用是因为您正在用<code>QWidget</code>实例覆盖它(我相信python允许您这样做)。要正确设置中心小部件,需要在<code>QMainWindow</code>中使用<code>setCentralWidget()</code>。</p>
<pre><code>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.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.scrollArea = QtWidgets.QScrollArea()
self.scrollArea.setGeometry(QtCore.QRect(0, 0, 1131, 951))
self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollArea.setEnabled(True)
self.horizontalLayout.addWidget(self.scrollArea)
centralWidget = QWidgets.QWidget()
centralWidget.setObjectName("centralWidget")
centralWidget.setLayout(self.horizontalLayout)
self.setCentralWidget(centralWidget)
</code></pre>
<p>我把<code>Interface</code>留下了,因为我不知道它是什么,但是其他的应该没问题。</p>