【发布时间】:2016-06-28 20:40:19
【问题描述】:
我正在为我经常使用的一些脚本制作一个小的 PyQt gui 软件。此 gui 的一部分在右侧有一个按钮列表,按钮的数量可能因 gui 的每次运行而异。出于这个原因,我希望将它们放在滚动区域中。这有点工作,但由于某种原因,当窗口大小允许时,滚动区域不会扩展最后一位(因此不会显示滚动条)。
它的行为就好像在别处设置了最大高度,即使我设置的最大高度远高于窗口大小?!?
如果我将 minimumheight 设置为大于 widgetsize,则滚动条会按预期隐藏,但如果 minimumsize 较小则不会,因此当窗口较小时将使用滚动条。 Cutout, left with minimumheight of 550, and right with minimumheight of 200
self.Pvbox = QtGui.QVBoxLayout()
self.syncButton=QtGui.QPushButton('Sync')
self.syncButton.setMaximumWidth(100)
self.Pvbox.addWidget(self.syncButton)
PbuttonWdg = QtGui.QWidget()
Pbuttonlayout = QtGui.QVBoxLayout()
self.nbuttons=[]
c=0
for n in main.Pnames:
self.nbuttons.append(QtGui.QPushButton(str(n)))
self.nbuttons[-1].setMaximumWidth(80)
Pbuttonlayout.addWidget(self.nbuttons[-1])
c+=1
PbuttonWdg.setLayout(Pbuttonlayout)
scroll=QtGui.QScrollArea()
scroll.setMaximumWidth(110)
scroll.setMinimumWidth(110)
scroll.setMinimumHeight(550)
scroll.setMaximumHeight(800)
scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
scroll.setWidgetResizable(False)
scroll.setWidget(PbuttonWdg)
self.Pvbox.addWidget(scroll)
self.Pvbox.addStretch(1)
self.localButton=QtGui.QPushButton('Local')
self.localButton.setMaximumWidth(100)
self.Pvbox.addWidget(self.localButton)
【问题讨论】:
标签: pyqt qscrollarea