学習pyqtベース3
PyQt 4のレイアウトマネージャ
レイアウト管理は、ウィンドウに表示されない場所を配置する方法です.レイアウト管理には、絶対位置決め方式とレイアウトカテゴリ方式の2つの作業方法があります.一般的には、絶対レイアウトは少ないですが、ウェブページのように、今は何の流行もありません.
レイアウトカテゴリ方式(layout classes)
レイアウトカテゴリ方式を使用するレイアウトマネージャは、絶対位置決め方式のレイアウトマネージャよりも柔軟で実用的です.ウィンドウコンポーネントの最初のレイアウト管理方式です.最も基本的なレイアウトカテゴリはQHBOxLayoutとQVBOxLayoutレイアウト管理方式である.コードはvboxについて理解しやすい.addStretch()という方法は、伸縮間隔要素(ドキュメントを深く参照) を意味する.
グリッドレイアウト感じのコードはやはり比较的に分かりやすくて、本の上でもあまり话していないで、私も...
レイアウト管理は、ウィンドウに表示されない場所を配置する方法です.レイアウト管理には、絶対位置決め方式とレイアウトカテゴリ方式の2つの作業方法があります.一般的には、絶対レイアウトは少ないですが、ウェブページのように、今は何の流行もありません.
レイアウトカテゴリ方式(layout classes)
レイアウトカテゴリ方式を使用するレイアウトマネージャは、絶対位置決め方式のレイアウトマネージャよりも柔軟で実用的です.ウィンドウコンポーネントの最初のレイアウト管理方式です.最も基本的なレイアウトカテゴリはQHBOxLayoutとQVBOxLayoutレイアウト管理方式である.
class Boxlayout(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self)
self.setWindowTitle('box layout')
ok = QtGui.QPushButton('OK')
cancel = QtGui.QPushButton('Cancel')
hbox = QtGui.QHBoxLayout()
hbox.addStretch(1)
hbox.addWidget(ok)
hbox.addWidget(cancel)
vbox = QtGui.QVBoxLayout()
vbox.addStretch(1)
vbox.addLayout(hbox)
self.setLayout(vbox)
self.resize(300, 150)
グリッドレイアウト
class GridLayout(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self)
self.setWindowTitle('grid layout')
names = ['Cls', 'Bck', '', 'Close', '7', '8', '9', '/',
'4', '5', '6', '*', '1', '2', '3',
'-', '0', '.', '=', '+']
grid = QtGui.QGridLayout()
j = 0
pos = [(0, 0), (0, 1), (0, 2), (0, 3),
(1, 0), (1, 1), (1, 2), (1, 3),
(2, 0), (2, 1), (2, 2), (2, 3),
(3, 0), (3, 1), (3, 2), (3, 3),
(4, 0), (4, 1), (4, 2), (4, 3)]
for i in names:
button = QtGui.QPushButton(i)
if j == 2:
grid.addWidget(QtGui.QLabel(''), 0, 2)
else:
grid.addWidget(button, pos[j][0], pos[j][1])
j = j + 1
self.setLayout(grid)