0504QTabWidget

本文介绍如何使用PyQt5库中的QTabWidget组件来创建具有多个标签页的窗口应用。通过实例演示了如何设置不同的布局和组件到每个标签页中,包括表单布局、水平布局等。
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

#注意父级是QTabWidget
class demoQTabWidget(QTabWidget):
    def __init__(self):
        super(demoQTabWidget, self).__init__()

        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()

        #这里的Tab 1其实已经给tab命名了,也会在tab标签上显示,不知道为什么下面为什么还专门用setTabText()重命名
        self.addTab(self.tab1, "Tab 1")
        self.addTab(self.tab2, "Tab 2")
        self.addTab(self.tab3, "Tab 3")

        self.tab1UI()
        self.tab2UI()
        self.tab3UI()

        self.resize(500, 100)
        self.setWindowTitle("0504QTabWidget")

    def tab1UI(self):
        layout = QFormLayout()
        layout.addRow("Name:", QLineEdit())
        layout.addRow("Address: ", QLineEdit())
        #
        self.setTabText(0, "Contect")
        self.tab1.setLayout(layout)

    def tab2UI(self):
        layout = QFormLayout()
        sexLayout = QHBoxLayout()
        sexLayout.addWidget(QRadioButton("Male"))
        sexLayout.addWidget(QRadioButton("Female"))
        layout.addRow(sexLayout)
        layout.addRow("Birthday: ", QLineEdit())
        self.setTabText(1, "Personal Information")
        self.tab2.setLayout(layout)

    def tab3UI(self):
        layout = QHBoxLayout()
        layout.addWidget(QLabel("Subject: "))
        layout.addWidget(QCheckBox("Physics"))
        layout.addWidget(QCheckBox("Advanced Mathematics"))
        self.setTabText(2, "Education")
        self.tab3.setLayout(layout)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = demoQTabWidget()
    win.show()
    sys.exit(app.exec_())

 

### Qt QTabWidget 使用教程 #### 创建QTabWidget实例并添加标签页 为了创建`QTabWidget`对象,可以使用如下代码: ```cpp #include <QApplication> #include <QTabWidget> #include <QWidget> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; QTabWidget tabs(&window); // 添加新的标签页到QTabWidget中 tabs.addTab(new QWidget(), "Tab 1"); tabs.addTab(new QWidget(), "Tab 2"); window.show(); return app.exec(); } ``` 这段程序展示了如何初始化一个窗口内的`QTabWidget`, 并向其中加入两个简单的标签页[^1]。 #### 设置QTabWidget样式 对于希望自定义`QTabWidget`外观的情况,可以通过设置样式表来改变其默认风格。例如修改背景颜色、字体大小以及边框等属性: ```css /* 应用于整个QTabWidget */ QTabWidget { background-color: white; } /* 针对选中的tab项应用特殊效果 */ QTabBar::tab:selected { color: red; font-weight: bold; } /* 调整关闭按钮的位置和尺寸 */ QTabBar QToolButton { /* 这里指定了QTabBar下QToolButton的样式 */ width: 20px; height: 20px; } ``` 上述CSS片段说明了怎样利用Qt Style Sheets (QSS) 来美化组件,包括但不限于调整文字色彩与加粗显示被激活选项卡的内容[^2]. #### 实际应用场景案例分析 实际开发过程中经常遇到的需求之一是在不同页面间切换展示特定功能模块的情形。比如浏览器软件里的多标签浏览机制就非常适合采用`QTabWidget`实现;另外像360安全卫士这类应用程序也采用了类似的布局方式——点击顶部导航栏上的各个图标即可加载对应的子视图区域[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值