QScrollArea在QSplitter中带有QWidget

时间:2015-11-30 17:17:34

标签: python-2.7 pyqt4 qwt qscrollarea

我正在为我的班级创建一个项目,我需要在一个小部件中放置scrollArea(我选择了一个拆分器),我想按下一个按钮并在此内部创建更多scrollArea小部件。这就是我所做的:

我创建了这样的按钮:

self.AddCanal = QAction(QIcon(), "Add channel", self, shortcut = "Shift+Ctrl+c", triggered = self.addChannel)

我把它放在QToolBar()

然后,我创建了scrollArea。我将scrollArea与Qwidget(在这种情况下我使用QwtPlot)放在QSplittersplitter1)中,然后我将一个框架和拆分器放在另一个框架中分裂器(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

我该如何做到这一点?

1 个答案:

答案 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班级

希望它可以帮助某人。