我正在为我的班级创建一个项目,我需要在一个小部件中放置scrollArea
(我选择了一个拆分器),我想按下一个按钮并在此内部创建更多scrollArea
小部件。这就是我所做的:
我创建了这样的按钮:
self.AddCanal = QAction(QIcon(), "Add channel", self, shortcut = "Shift+Ctrl+c", triggered = self.addChannel)
我把它放在QToolBar()
。
然后,我创建了scrollArea
。我将scrollArea与Qwidget
(在这种情况下我使用QwtPlot
)放在QSplitter
(splitter1
)中,然后我将一个框架和拆分器放在另一个框架中分裂器(splitter2
)。最后,我将splitter2
和另一个帧放在最后一个分割器(splitter3
)中。你可以在这里看到它:
self.scrollLayout = QFormLayout()
self.canal = QwtPlot()
self.canal.setLayout(self.scrollLayout)
self.scrollArea = QScrollArea()
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setWidget(self.canal)
self.scrollArea = QScrollArea()
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setWidget(self.canal)
splitter2 = QSplitter(Qt.Horizontal)
splitter2.addWidget(self.frame)
splitter2.addWidget(splitter1)
splitter3 = QSplitter(Qt.Vertical)
splitter3.addWidget(splitter2)
splitter3.addWidget(self.frame_3)
我是这样做的,因为在一个框架中我将放置一个树小部件,在底部框架中我将放置一个QtextEdit()
。
好吧,现在我需要按钮,当点击它时,会在scrollArea
中创建另一个splitter1
。我想至少增加5个scrollAreas
。
我该如何做到这一点?
答案 0 :(得分:0)
我解决了它创建这样的方法:
def addChannel(self):
global channelCount
self.scrollLayout = QFormLayout()
self.canal = QwtPlot()
self.canal.setLayout(self.scrollLayout)
self.scrollArea = QScrollArea()
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setWidget(self.canal)
if channelCount <= 5:
self.splitter1.addWidget(self.scrollArea)
channelCount += 1
return channelCount
使用“channelCount”作为全局变量,从1开始,只是因为我只需要5。
我补充道:
self.addchannel()
在QMainWindow
班级
希望它可以帮助某人。