Pyqt-qtabwidget
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()
上記のコードは、次の出力を生成します-