PYQT5使用Qt Designer中的Tab Widget实现窗口切换并更改Tab为竖向排列

将Tab Widget控件拖入主窗口

在属性中编辑标签名称

鼠标右键插入新标签页

更改tab为竖向排列(West为左边,East为右边)

更改后的排列

更改界面样式表,调整tab大小(根据需求微调)

QTabBar::tab {
    width: 30px; /* 设置按钮横向为30像素 */
    height: 60px; /* 设置按钮纵向为60像素 */
}

调整后的大小

### PyQt6与QtDesigner实现多界面切换的功能 在PyQt6中,使用QtDesigner设计多界面切换功能可以通过`QTabWidget`和`QStackedWidget`两种方式实现。以下是具体的实现方法、代码示例以及相关说明。 #### 一、使用`QTabWidget`实现多界面切换 `QTabWidget`是一个内置的控件,用于创建带标签的多页面界面。每个标签对应一个子窗口或页面,用户可以通过点击标签进行页面切换。 - 在QtDesigner中拖拽`QTabWidget`到主窗口。 - 添加多个子页面(Tab),为每个页面设计不同的布局和控件。 - 生成Python代码后,通过设置信号槽机制实现页面间的动态交互[^2]。 ```python from PyQt6.QtWidgets import QApplication, QMainWindow, QTabWidget, QWidget, QVBoxLayout, QLabel class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("QTabWidget 示例") # 创建 QTabWidget 实例 tab_widget = QTabWidget() # 添加第一个页面 page1 = QWidget() layout1 = QVBoxLayout() layout1.addWidget(QLabel("这是第一页")) page1.setLayout(layout1) tab_widget.addTab(page1, "页面1") # 添加第二个页面 page2 = QWidget() layout2 = QVBoxLayout() layout2.addWidget(QLabel("这是第二页")) page2.setLayout(layout2) tab_widget.addTab(page2, "页面2") # 设置为主窗口的中心部件 self.setCentralWidget(tab_widget) app = QApplication([]) window = MainWindow() window.show() app.exec() ``` #### 二、使用`QStackedWidget`实现多界面切换 `QStackedWidget`允许将多个页面堆叠在一起,通过索引控制显示哪个页面。这种方式更适合实现无标签的界面切换效果。 - 在QtDesigner中拖拽`QStackedWidget`到主窗口。 - 添加多个页面,为每个页面设计不同的布局和控件。 - 使用按钮或其他触发事件来更改当前显示的页面索引[^2]。 ```python from PyQt6.QtWidgets import QApplication, QMainWindow, QStackedWidget, QWidget, QVBoxLayout, QPushButton, QLabel class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("QStackedWidget 示例") # 创建 QStackedWidget 实例 stacked_widget = QStackedWidget() # 添加第一个页面 page1 = QWidget() layout1 = QVBoxLayout() layout1.addWidget(QLabel("这是第一页")) button1 = QPushButton("切换到第二页") button1.clicked.connect(lambda: stacked_widget.setCurrentIndex(1)) layout1.addWidget(button1) page1.setLayout(layout1) stacked_widget.addWidget(page1) # 添加第二个页面 page2 = QWidget() layout2 = QVBoxLayout() layout2.addWidget(QLabel("这是第二页")) button2 = QPushButton("切换到第一页") button2.clicked.connect(lambda: stacked_widget.setCurrentIndex(0)) layout2.addWidget(button2) page2.setLayout(layout2) stacked_widget.addWidget(page2) # 设置为主窗口的中心部件 self.setCentralWidget(stacked_widget) app = QApplication([]) window = MainWindow() window.show() app.exec() ``` #### 三、资源管理文件(.qrc)的使用 如果项目中包含图片、图标等资源,可以使用`.qrc`文件进行管理。将`.qrc`文件转换为Python代码后,资源会以二进制形式嵌入到程序中[^4]。 ```bash pyrcc6 resources.qrc -o resources_rc.py ``` 在代码中导入生成的`resources_rc.py`文件即可使用资源。 #### 四、总结 通过`QTabWidget`和`QStackedWidget`,可以灵活地实现多界面切换功能。前者适合带有标签的界面设计,后者适合无标签的动态切换场景。结合QtDesigner的设计能力和PyQt6的信号槽机制,能够快速构建复杂且功能丰富的桌面应用程序[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值