前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyQt QTabWidget

PyQt QTabWidget

作者头像
用户6021899
发布2019-08-14 15:39:52
2.4K0
发布2019-08-14 15:39:52
举报

本篇主要介绍 QTabWidget的用法, 也会顺带介绍 QRadioButton 的分组, 以及 复合窗口部件的创建 。

Tab标签页窗口部件(QTabWidget)可以有多个”页面“(page),每个页面包含一个Tab标签页标题(可含图标),和若干子窗口部件(要么是单个部件,要么由它们组成一个复合窗口部件)。

QRadioButton 是一个可以“开”和“关”的按钮。 拥有同一父窗口部件,或者属于同一 button group 的 按钮,在同一时刻只有一个能处于 “开”的状态。

具体的运用详见代码:

import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import QIcon #from PyQt5.QtCore import Qt, QDate, QTime, QDateTime, QTimer

class Widget(QMainWindow):

def __init__(self, parent = None): super().__init__(parent) self.setWindowTitle("Tab 部件演示")

self.textEdit = QTextEdit() #self.textEdit.setFixedHeight(200) self.textEdit.setText(" Input something here:") self.textEdit.selectAll()

self.tabWidget = QTabWidget() #设置tab 标签在页面的位置 #self.tabWidget.setTabPosition(QTabWidget.North) #默认 北 (0,上) self.tabWidget.setTabPosition(QTabWidget.South) #南(1,下) #self.tabWidget.setTabPosition(QTabWidget.West) #西(2,左) #self.tabWidget.setTabPosition(QTabWidget.East) # 东(3,右)

#设置 tab 标签的形状 #self.tabWidget.setTabShape (QTabWidget.Rounded)# 圆角,0,默认 self.tabWidget.setTabShape (QTabWidget.Triangular)# 三角形,1 self.tabWidget.addTab(self.create_widget1(), "第一页") #还可以添加图标 self.tabWidget.addTab(self.textEdit, QIcon("ICON/smile.png"), "第二页")

self.tabWidget.currentChanged[int].connect(self.on_currentChanged) self.setCentralWidget(self.tabWidget)

def create_widget1(self): #创建自定义复合窗口部件 widget = QWidget()#step1 gLayout = QGridLayout() label1 = QLabel("姓名:") lineEdit1 = QLineEdit() label1.setBuddy(lineEdit1)

label2 = QLabel("性别:") buttonGroup = QButtonGroup() radioButton1 = QRadioButton("男") radioButton2 = QRadioButton("女") radioButton2.setChecked(True) #同一button group 或同一 父窗体的 为一个分组,多选一 buttonGroup.addButton(radioButton1) buttonGroup.addButton(radioButton2)

gLayout.addWidget(label1, 0, 0) gLayout.addWidget(lineEdit1, 0, 1, 1, 2) gLayout.addWidget(label2,1,0) gLayout.addWidget(radioButton1, 1, 1) gLayout.addWidget(radioButton2, 1, 2)

widget.setLayout(gLayout)#step2 return widget

def on_currentChanged(self, index): print("current tab index:", index) print("current tab index:", self.tabWidget.currentIndex()) print("current tab widget:", self.tabWidget.currentWidget()) print("tab count", self.tabWidget.count()) #self.tabWidget.setCurrentIndex(1) #可通过代码设定当前tab #self.tabWidget.setTabEnabled (self, int index, bool) #disable Tab

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档