QWidget中实现好看的顶部导航栏
时间: 2023-06-12 22:04:42 浏览: 227
qt-navigation-bar.zip
要在QWidget中实现顶部导航栏,可以使用QTabBar 或QToolBar,这两个控件都可以实现类似的效果。
使用QTabBar:
QTabBar是一个选项卡控件,可以在其中添加多个选项卡,并且可以自定义选项卡的样式。在QWidget中使用QTabBar可以实现顶部导航栏的效果。
示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QTabBar, QVBoxLayout
class TopBar(QWidget):
def __init__(self):
super().__init__()
# 创建一个QTabBar对象
self.tab_bar = QTabBar()
# 设置选项卡的样式
self.tab_bar.setExpanding(True)
self.tab_bar.setStyleSheet("QTabBar::tab { height: 35px; width: 100px; }")
# 添加选项卡
self.tab_bar.addTab("首页")
self.tab_bar.addTab("消息")
self.tab_bar.addTab("设置")
# 创建一个垂直布局,并将QTabBar添加到布局中
layout = QVBoxLayout()
layout.addWidget(self.tab_bar)
# 设置QWidget的布局
self.setLayout(layout)
if __name__ == '__main__':
app = QApplication([])
bar = TopBar()
bar.show()
app.exec_()
```
使用QToolBar:
QToolBar是一个工具栏控件,可以在其中添加多个工具按钮,并且可以自定义工具按钮的样式。在QWidget中使用QToolBar可以实现顶部导航栏的效果。
示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QToolBar, QAction
class TopBar(QWidget):
def __init__(self):
super().__init__()
# 创建一个QToolBar对象
self.tool_bar = QToolBar()
# 设置工具按钮的样式
self.tool_bar.setIconSize(QSize(32, 32))
self.tool_bar.setStyleSheet("QToolButton { border: none; }")
# 添加工具按钮
home_action = QAction(QIcon("home.png"), "首页", self)
message_action = QAction(QIcon("message.png"), "消息", self)
setting_action = QAction(QIcon("setting.png"), "设置", self)
self.tool_bar.addAction(home_action)
self.tool_bar.addAction(message_action)
self.tool_bar.addAction(setting_action)
# 将QToolBar添加到QWidget中
self.addToolBar(self.tool_bar)
if __name__ == '__main__':
app = QApplication([])
bar = TopBar()
bar.show()
app.exec_()
```
注意:以上代码中的图片文件需要自己准备。
阅读全文