CSDN-Ada助手 2023-08-29 15:14 采纳率: 1.6%
浏览 24

stackedWidget上面

该问题来自社区帖: https://bbs.csdn.net/topics/617155593.

左右都是侧边栏,是两个Widget,蓝色部分是一个隐藏式侧边栏,功能已经实现。我的需求是,stackedWidget充满整个右边,当点击划出按钮,右边侧边栏直接覆盖

 stackedWidget上面,这里的布局该怎么设置。

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-08-29 17:39
    关注

    引用 皆我百晓生 小程序回复内容作答:
    要实现在 stackedWidget 上面添加布局,您可以使用 QStackedLayout 将 stackedWidget 与其他布局(例如 QHBoxLayout 或 QVBoxLayout)结合使用。

    以下是一个示例代码,展示了如何在 stackedWidget 上方添加另一个布局:

    from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QStackedLayout, QPushButton, QLabel, QStackedWidget
    
    class MainWindow(QWidget):
        def __init__(self):
            super().__init__()
    
            # 创建 stackedWidget
            self.stackedWidget = QStackedWidget()
    
            # 创建布局
            layout = QVBoxLayout()
            
            # 创建其他部件,例如按钮和标签
            button1 = QPushButton("页面1")
            button2 = QPushButton("页面2")
            label = QLabel("这是右边的 stackedWidget")
            
            # 将按钮添加到水平布局
            buttons_layout = QHBoxLayout()
            buttons_layout.addWidget(button1)
            buttons_layout.addWidget(button2)
            
            # 将按钮布局和标签添加到垂直布局
            layout.addLayout(buttons_layout)
            layout.addWidget(label)
            
            # 设置主布局
            main_layout = QHBoxLayout()
            main_layout.addLayout(layout)
            main_layout.addWidget(self.stackedWidget)
    
            # 设置布局
            self.setLayout(main_layout)
    
            # 绑定按钮的点击事件
            button1.clicked.connect(self.show_page1)
            button2.clicked.connect(self.show_page2)
    
            # 添加页面到 stackedWidget
            self.stackedWidget.addWidget(QWidget())
            self.stackedWidget.addWidget(QWidget())
    
        def show_page1(self):
            self.stackedWidget.setCurrentIndex(0)
    
        def show_page2(self):
            self.stackedWidget.setCurrentIndex(1)
    
    if __name__ == '__main__':
        app = QApplication([])
        window = MainWindow()
        window.show()
        app.exec_()
    

    在此示例中,stackedWidget 在布局中占据了右侧的位置,并且可以使用按钮切换不同的页面。有关更高级的布局需求,您可以根据自己的需要进行修改和扩展。

    希望这可以帮助您开始布局设置。如果您有任何其他问题,请随时提问。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月29日