Pyqt-qtabwidget

提供:Dev Guides
移動先:案内検索

PyQt-QTabウィジェット

フォームに同時に表示するフィールドが多すぎる場合は、タブ付きウィジェットの各タブの下に配置された異なるページに配置できます。 QTabWidgetは、タブバーとページ領域を提供します。 最初のタブの下のページが表示され、他のタブは非表示になります。 ユーザーは、目的のタブをクリックして、任意のページを表示できます。

以下は、QTabWidgetクラスの頻繁に使用されるメソッドの一部です-

QTabWidgetで最も一般的に使用される方法を以下に示します。

Sr.No. Methods & Description
1

addTab()

ウィジェットページに関連付けられたタブを追加します

2

insertTab()

目的の位置にページがあるタブを挿入します

3

removeTab()

指定されたインデックスのタブを削除します

4

setCurrentIndex()

現在表示されているページのインデックスを現在として設定します

5

setCurrentWidget()

表示ページを現在のページにします

6

setTabBar()

ウィジェットのタブバーを設定します

7

setTabPosition()

タブの位置は値によって制御されます

ページの上のQTabWidget.North

ページの下のQTabWidget.South

QTabWidget.Westページの左側

QTabWidget.Eastページの右側

8

setTabText()

タブインデックスに関連付けられたラベルを定義します

次の信号はQTabWidgetオブジェクトに関連付けられています-

Sr.No. Methods & Description
1

currentChanged()

現在のページインデックスが変更されるたび

2

tabClosedRequested()

タブの閉じるボタンがクリックされたとき

次の例では、フォームのコンテンツは3つのカテゴリにグループ化されています。 ウィジェットの各グループは、異なるタブの下に表示されます。

最上位ウィンドウ自体はQTabWidgetです。 3つのタブが追加されます。

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 PyQt4.QtCore import *
from PyQt4.QtGui 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()

上記のコードは、次の出力を生成します-

QTabWidget出力