ラズパイデスクトップでPyQt5入門(17)WidgetsⅡ(2)

こんばんは。國松です。
 今回はQSpliterとQComboBoxを見て行きたいと思います。
参考サイト
 ZetCode PyQt5 tutorial
 【PythonでGUI】PyQt5 -始めの一歩-
3.QSplitter
 QSplitterを使用するとウイジェットサイズを(境界をドラッグすることで)変更できるようになります。
 今回は2つのQSplitterで構成された3つのQFrameWidgetsを作成していきます。
 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #!/usr/bin/python3 #-*- coding: utf-8-*- """ This example shows how to use QSplitter widget """ from PyQt5.QtWidgets import (QWidget,QHBoxLayout,QFrame,QSplitter, QStyleFactory,QApplication) from PyQt5.QtCore import Qt import sys class Example(QWidget):     def __init__(self):         super().__init__()         self.initUI()     def initUI(self):         hbox = QHBoxLayout(self)         #フレームオブジェクトの作成(QFrameWisgets間の境界を確認するためにスタイル付きのフレームを使用)          topleft = QFrame(self)          topleft.setFrameShape(QFrame.StyledPanel)         topright = QFrame(self)          topright.setFrameShape(QFrame.StyledPanel)         buttom = QFrame(self)          buttom.setFrameShape(QFrame.StyledPanel)         #水平方向のSploterオブジェクトを作成して、フレームを追加         splitter1 = QSplitter(Qt.Horizontal)         splitter1.addWidget(topleft)         splitter1.addWidget(topright)         #垂直方向のSpliterオブジェクトを追加して、フレームを追加         splitter2 = QSplitter(Qt.Vertical)         splitter2.addWidget(splitter1)         splitter2.addWidget(buttom)         hbox.addWidget(splitter2)         self.setLayout(hbox)         self.setGeometry(300,300,300,200)         self.setWindowTitle('QSplitter')         self.show() if __name__ == '__main__':     app = QApplication(sys.argv)     ex = Example()     sys.exit(app.exec_()) | 
4.QComboBox
 QComboBoxはユーザーがオプションをリストから選択できるウィジェットです。
 今回はQComboBoxとQLabelWisgetsを使用しQComboBoxから選択した値(オプション)がラベルに表示されるようにしていきます。
 (使用する5つのオプションはLilnuxのディストリビューションの名前です)
 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #!/usr/bin/python3 #-*-coding: utf-8 -*- """ This example shows how to use a QComboBox widget """ from PyQt5.QtWidgets import (QWidget,QLabel,QComboBox,QApplication) import sys class Example(QWidget):     def __init__(self):      super().__init__()      self.initUI()     def initUI(self):         self.lbl = QLabel("Ubuntu",self) #5つのオプションを持つコンボボックスを作成         combo = QComboBox(self)         combo.addItem("Ubuntu")         combo.addItem("Mandriva")         combo.addItem("Fedora")         combo.addItem("Arch")         combo.addItem("Gentoo")         combo.move(50,50)         self.lbl.move(50,150) #オプションを選択するとActivated()メソッドを呼び出す         combo.activated[str].connect(self.onActivated)         self.setGeometry(300,300,300,200)         self.setWindowTitle('QComboBox')         self.show() #選択したオプションに応じてラベルのサイズを調整する     def onActivated(self,text):         self.lbl.setText(text)         self.lbl.adjustSize() if __name__ == '__main__':     app = QApplication(sys.argv)     ex = Example()     sys.exit(app.exec_()) | 

