gpt4 book ai didi

python - Qscrollarea 不显示滚动条并且布局弹出不合适

转载 作者:行者123 更新时间:2023-11-30 23:55:56 24 4
gpt4 key购买 nike

我昨晚花了很多时间试图让这个 QScrollArea 工作,但没有运气。我想做的是在菜单下方添加顶部水平菜单布局和可滚动垂直内容布局。滚动条不可见,一旦我向其中添加新元素(通过单击菜单按钮之一),内容布局就会弹出。

请帮帮我。 :)

问候,拉尔斯·埃里克

import sys 
from PyQt4 import QtCore, QtGui, Qt

class MainWindow( QtGui.QMainWindow ):

def __init__( self ):

QtGui.QMainWindow.__init__( self )

self.centralWidget = QtGui.QWidget()
self.setCentralWidget( self.centralWidget )

#Main Layout
layout = QtGui.QVBoxLayout()
layout.setSpacing( 0 )
self.centralWidget.setLayout( layout )

#Top Menu Layout
hLayout = QtGui.QHBoxLayout()
layout.addLayout( hLayout )

i = 0
while i < 5:
addContent = QtGui.QPushButton( 'Add Content' )
hLayout.addWidget( addContent )

self.connect(addContent, QtCore.SIGNAL('clicked()'), self.addContent)
i += 1

#Content Layout
self.lowerWidget = QtGui.QWidget()
#self.lowerWidget.setMaximumSize( Qt.QSize(150, 250) )

self.scrollArea = QtGui.QScrollArea()
self.scrollArea.setWidget( self.lowerWidget )

layout.addWidget( self.lowerWidget )

self.vLayout = QtGui.QVBoxLayout()
self.lowerWidget.setLayout( self.vLayout )

i = 0
while i < 25:
label = QtGui.QLabel( 'Content' )
self.vLayout.addWidget( label )
i += 1


def addContent(self):

label = QtGui.QLabel( 'Content' )
self.vLayout.addWidget( label )


if __name__ == '__main__':

app = QtGui.QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())

最佳答案

这看起来不对:

self.scrollArea = QtGui.QScrollArea() 
self.scrollArea.setWidget( self.lowerWidget )

layout.addWidget( self.lowerWidget )

您将 lowerWidget 添加到滚动区域,只是为了将其添加到下一步的布局中,这会从滚动区域中删除 lowerWidget 并重新设置其顶级小部件的父级。您必须将滚动区域添加到布局中:

self.scrollArea = QtGui.QScrollArea() 
self.scrollArea.setWidget( self.lowerWidget )

layout.addWidget( self.scrollArea )

关于python - Qscrollarea 不显示滚动条并且布局弹出不合适,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com