PyQt5 – QTab小工具

PyQt5 – QTab小工具

如果一个表单有太多的字段需要同时显示,它们可以被安排在不同的页面中,放置在Tabbed Widget的每个标签下。它提供了一个标签栏和一个页面区域。第一个标签下的页面被显示,其他的则被隐藏。用户可以通过点击所需的标签查看任何页面。

以下是QTabWidget类中一些经常使用的方法——。

Sr.No. 方法和描述
1 addTab() 添加一个与小组件页面相关的标签
2 insertTab() 在所需的位置上插入一个标签页。
3 removeTab() 移除给定索引处的标签
4 setCurrentIndex() 将当前可见页面的索引设为当前索引。
5 setCurrentWidget() 将可见的页面作为当前页面。
6 setTabBar() 设置小组件的标签栏。
7 setTabPosition() 标签的位置由以下数值控制 QTabWidget.North在页面上方 QTabWidget.South在页面下方 QTabWidget.West在页面左边 QTabWidget.East在页面右边
8 setTabText() 定义与标签索引相关的标签。
Sr.No. 方法和描述
1 currentChanged() 每当当前页面索引发生变化时
2 tabClosedRequested() 当标签上的关闭按钮被点击时

示例

在下面的例子中,一个表格的内容被分组为三个类别。每组小工具都显示在不同的标签下。

顶层窗口本身是一个QTabWidget。三个标签被添加到它里面。

self.addTab(self.tab1,"Tab 1")
self.addTab(self.tab2,"Tab 2")
self.addTab(self.tab3,"Tab 3")

每个标签显示一个使用布局设计的子表单。标签文本由报表改变。

self.setTabText(0,"Contact Details")
self.setTabText(1,"Personal Details")
self.setTabText(2,"Education Details")

完整的代码如下-

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class tabdemo(QTabWidget):
   def __init__(self, parent = None):
      super(tabdemo, self).__init__(parent)
      self.tab1 = QWidget()
      self.tab2 = QWidget()
      self.tab3 = QWidget()

      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.setWindowTitle("tab demo")

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

   def tab2UI(self):
      layout = QFormLayout()
      sex = QHBoxLayout()
      sex.addWidget(QRadioButton("Male"))
      sex.addWidget(QRadioButton("Female"))
      layout.addRow(QLabel("Sex"),sex)
      layout.addRow("Date of Birth",QLineEdit())
      self.setTabText(1,"Personal Details")
      self.tab2.setLayout(layout)

   def tab3UI(self):
      layout = QHBoxLayout()
      layout.addWidget(QLabel("subjects")) 
      layout.addWidget(QCheckBox("Physics"))
      layout.addWidget(QCheckBox("Maths"))
      self.setTabText(2,"Education Details")
      self.tab3.setLayout(layout)

def main():
   app = QApplication(sys.argv)
   ex = tabdemo()
   ex.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

上述代码产生了以下输出 —

PyQt5 - QTab小工具

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程