写一个PYQT的程序,侧边栏点击可以展开或关闭
时间: 2024-05-02 07:18:57 浏览: 96
基于深度学习神经网络和PYQT5的GUI可视化手写数字识别小程序项目源码.zip
5星 · 资源好评率100%
以下是一个简单的示例程序,可以实现侧边栏的展开和关闭。
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton
class SideBar(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建两个按钮
self.btn1 = QPushButton('Button1')
self.btn2 = QPushButton('Button2')
# 垂直布局
vbox = QVBoxLayout()
vbox.addWidget(self.btn1)
vbox.addWidget(self.btn2)
self.setLayout(vbox)
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建侧边栏和主窗口
self.sidebar = SideBar()
self.main_window = QWidget()
# 创建水平布局,并添加侧边栏和主窗口
hbox = QHBoxLayout()
hbox.addWidget(self.sidebar)
hbox.addWidget(self.main_window)
self.setLayout(hbox)
# 连接按钮的clicked信号和槽函数toggleSideBar
self.sidebar.btn1.clicked.connect(self.toggleSideBar)
self.sidebar.btn2.clicked.connect(self.toggleSideBar)
def toggleSideBar(self):
# 切换侧边栏的显示状态
if self.sidebar.isHidden():
self.sidebar.show()
else:
self.sidebar.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在这个程序中,我们创建了一个侧边栏 `SideBar`,包含两个按钮 `btn1` 和 `btn2`。然后我们在主窗口 `MainWindow` 中创建了一个水平布局,把侧边栏和主窗口添加到布局中。
我们通过连接按钮的 `clicked` 信号和槽函数 `toggleSideBar` 来实现侧边栏的展开和关闭。在 `toggleSideBar` 函数中,我们通过调用 `show` 和 `hide` 函数来切换侧边栏的显示状态。
运行程序后,点击按钮 `btn1` 或 `btn2`,就可以展开或关闭侧边栏了。
阅读全文